From 7b98cead834415d40514ff28797169b084bb7335 Mon Sep 17 00:00:00 2001 From: elachlan <2433737+elachlan@users.noreply.github.com> Date: Mon, 3 Jan 2022 09:21:05 +1000 Subject: [PATCH 1/5] SA1004 Documentation line should begin with a space --- .../MockProjectItemDefinitionLink.cs | 2 +- .../MockProjectItemLink.cs | 2 +- .../EvaluationLinkMocks/MockProjectLink.cs | 2 +- .../MockProjectMetadataLink.cs | 2 +- .../MockProjectPropertyLink.cs | 2 +- .../BackEnd/LoggingServiceFactory_Tests.cs | 2 +- .../Components/Logging/ILoggingService.cs | 2 +- .../Shared/BuildRequestConfiguration.cs | 2 +- .../Solution/SolutionProjectGenerator.cs | 4 +- src/Build/Definition/Project.cs | 38 +++++++++---------- src/Build/Evaluation/IntrinsicFunctions.cs | 2 +- .../Engine/LocalProvider/SharedMemory.cs | 4 +- src/Framework/BuildEventContext.cs | 2 +- src/Framework/Sdk/SdkResolver.cs | 2 +- .../AssemblyDependency/Miscellaneous.cs | 18 ++++----- .../SpecificVersionPrimary.cs | 4 +- src/Tasks/FindInvalidProjectReferences.cs | 2 +- src/Tasks/InstalledSDKResolver.cs | 2 +- src/Tasks/ResolveSDKReference.cs | 2 +- .../RoslynCodeTaskFactory.cs | 10 ++--- 20 files changed, 53 insertions(+), 53 deletions(-) diff --git a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectItemDefinitionLink.cs b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectItemDefinitionLink.cs index 25b9fa61b9b..78fc4f41e71 100644 --- a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectItemDefinitionLink.cs +++ b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectItemDefinitionLink.cs @@ -16,7 +16,7 @@ public override ProjectItemDefinition CreateLinkedObject(IImportHolder holder) } - /// ProjectItemDefinitionLink remoting + /// ProjectItemDefinitionLink remoting public MockProjectLinkRemoter Project => this.OwningCollection.Export(this.Source.Project); public string ItemType => this.Source.ItemType; public ICollection Metadata => this.OwningCollection.ExportCollection(this.Source.Metadata); diff --git a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectItemLink.cs b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectItemLink.cs index a4015cb2fb7..8085210a9a9 100644 --- a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectItemLink.cs +++ b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectItemLink.cs @@ -17,7 +17,7 @@ public override ProjectItem CreateLinkedObject(IImportHolder holder) } - /// ProjectItemLink remoting + /// ProjectItemLink remoting public MockProjectLinkRemoter Project => this.OwningCollection.Export(this.Source.Project); public MockProjectItemElementLinkRemoter Xml => (MockProjectItemElementLinkRemoter)this.OwningCollection.ExportElement(this.Source.Xml); public string EvaluatedInclude => this.Source.EvaluatedInclude; diff --git a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectLink.cs b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectLink.cs index 324dcb6eb3f..af9a602f544 100644 --- a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectLink.cs +++ b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectLink.cs @@ -23,7 +23,7 @@ public override Project CreateLinkedObject(IImportHolder holder) } - /// ProjectLink remoting + /// ProjectLink remoting public MockProjectElementLinkRemoter Xml => this.OwningCollection.ExportElement(this.Source.Xml); public bool ThrowInsteadOfSplittingItemElement { get => this.Source.ThrowInsteadOfSplittingItemElement; set => this.Source.ThrowInsteadOfSplittingItemElement = value; } diff --git a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectMetadataLink.cs b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectMetadataLink.cs index dea676b3ea4..060cf00c164 100644 --- a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectMetadataLink.cs +++ b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectMetadataLink.cs @@ -16,7 +16,7 @@ public override ProjectMetadata CreateLinkedObject(IImportHolder holder) } - /// ProjectMetadataLink remoting + /// ProjectMetadataLink remoting public object Parent { get diff --git a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectPropertyLink.cs b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectPropertyLink.cs index 374f44d06bc..b8060667b8c 100644 --- a/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectPropertyLink.cs +++ b/src/Build.OM.UnitTests/ObjectModelRemoting/RemoteProjectsProviderMock/EvaluationLinkMocks/MockProjectPropertyLink.cs @@ -16,7 +16,7 @@ public override ProjectProperty CreateLinkedObject(IImportHolder holder) } - /// ProjectPropertyLink remoting + /// ProjectPropertyLink remoting public MockProjectLinkRemoter Project => this.OwningCollection.Export(this.Source.Project); public MockProjectPropertyElementLinkRemoter Xml => (MockProjectPropertyElementLinkRemoter)this.ExportElement(this.Source.Xml); public string Name => this.Source.Name; diff --git a/src/Build.UnitTests/BackEnd/LoggingServiceFactory_Tests.cs b/src/Build.UnitTests/BackEnd/LoggingServiceFactory_Tests.cs index 10cf7d2192a..31c15410772 100644 --- a/src/Build.UnitTests/BackEnd/LoggingServiceFactory_Tests.cs +++ b/src/Build.UnitTests/BackEnd/LoggingServiceFactory_Tests.cs @@ -8,7 +8,7 @@ namespace Microsoft.Build.UnitTests.Logging { /// - ///Test the Factory to create components of the type LoggingService + /// Test the Factory to create components of the type LoggingService /// public class LoggingServiceFactory_Tests { diff --git a/src/Build/BackEnd/Components/Logging/ILoggingService.cs b/src/Build/BackEnd/Components/Logging/ILoggingService.cs index 85538f7baa4..c3b2c3045c3 100644 --- a/src/Build/BackEnd/Components/Logging/ILoggingService.cs +++ b/src/Build/BackEnd/Components/Logging/ILoggingService.cs @@ -267,7 +267,7 @@ MessageImportance MinimumRequiredMessageImportance /// Register an logger which expects all logging events from the system /// /// The logger to register. - ///True if the central was registered. False if the central logger was already registered + /// True if the central was registered. False if the central logger was already registered bool RegisterLogger(ILogger logger); /// diff --git a/src/Build/BackEnd/Shared/BuildRequestConfiguration.cs b/src/Build/BackEnd/Shared/BuildRequestConfiguration.cs index 6d55273c55c..f7cc41e5496 100644 --- a/src/Build/BackEnd/Shared/BuildRequestConfiguration.cs +++ b/src/Build/BackEnd/Shared/BuildRequestConfiguration.cs @@ -121,7 +121,7 @@ internal class BuildRequestConfiguration : IEquatable /// private int _resultsNodeId = Scheduler.InvalidNodeId; - /// + /// /// Holds a snapshot of the environment at the time we blocked. /// private Dictionary _savedEnvironmentVariables; diff --git a/src/Build/Construction/Solution/SolutionProjectGenerator.cs b/src/Build/Construction/Solution/SolutionProjectGenerator.cs index 43318152844..46ea5a5343c 100644 --- a/src/Build/Construction/Solution/SolutionProjectGenerator.cs +++ b/src/Build/Construction/Solution/SolutionProjectGenerator.cs @@ -1974,9 +1974,9 @@ private void AddValidateProjectsTarget(ProjectInstance traversalProject, List + /// /// Creates the target used to build all of the references in the traversal project. - /// + /// private static void AddTraversalReferencesTarget(ProjectInstance traversalProject, string targetName, string outputItem) { string outputItemAsItem = null; diff --git a/src/Build/Definition/Project.cs b/src/Build/Definition/Project.cs index df1d8ed8eb4..77997bc7040 100644 --- a/src/Build/Definition/Project.cs +++ b/src/Build/Definition/Project.cs @@ -855,27 +855,27 @@ public static string GetEvaluatedItemIncludeEscaped(ProjectItemDefinition item) /// /// /// - ///

*.txt

+ ///

*.txt

/// - /// (both outside and inside project cone) - /// (both outside and inside project cone) - /// - /// - /// - /// - /// (If Bar has globs, they will have been included when querying Bar ProjectItems for globs) - /// - ///
+ /// (both outside and inside project cone) + /// (both outside and inside project cone) + /// + /// + /// + /// + /// (If Bar has globs, they will have been included when querying Bar ProjectItems for globs) + /// + /// /// - ///Example result: - ///[ - ///GlobResult(glob: "C:\**\*.foo", exclude: []), - ///GlobResult(glob: ["*.a", "*.b"], exclude=["3.a"], remove=["2.a"]), - ///GlobResult(glob: "**\*.b", exclude=["1.b, **\obj\*.b", **\bar\*.b"]), - ///GlobResult(glob: "*.txt", exclude=[]), - ///GlobResult(glob: "*.a", exclude=[]), - ///GlobResult(glob: "*.cs", exclude=["bar"]) - ///]. + /// Example result: + /// [ + /// GlobResult(glob: "C:\**\*.foo", exclude: []), + /// GlobResult(glob: ["*.a", "*.b"], exclude=["3.a"], remove=["2.a"]), + /// GlobResult(glob: "**\*.b", exclude=["1.b, **\obj\*.b", **\bar\*.b"]), + /// GlobResult(glob: "*.txt", exclude=[]), + /// GlobResult(glob: "*.a", exclude=[]), + /// GlobResult(glob: "*.cs", exclude=["bar"]) + /// ]. ///
/// /// is a that combines all globs in the include element and ignores diff --git a/src/Build/Evaluation/IntrinsicFunctions.cs b/src/Build/Evaluation/IntrinsicFunctions.cs index 479d5578559..5b9cee37f6a 100644 --- a/src/Build/Evaluation/IntrinsicFunctions.cs +++ b/src/Build/Evaluation/IntrinsicFunctions.cs @@ -348,7 +348,7 @@ internal static string ValueOrDefault(string conditionValue, string defaultValue } } - /// + /// /// Hash the string independent of bitness and target framework. /// internal static int StableStringHash(string toHash) diff --git a/src/Deprecated/Engine/LocalProvider/SharedMemory.cs b/src/Deprecated/Engine/LocalProvider/SharedMemory.cs index 30bb926fc11..10752cb9136 100644 --- a/src/Deprecated/Engine/LocalProvider/SharedMemory.cs +++ b/src/Deprecated/Engine/LocalProvider/SharedMemory.cs @@ -89,7 +89,7 @@ private SharedMemory() /// This type however does not set the type of the memory mapped section, /// the memory mapped section itself is created /// with READWRITE access. - /// + /// /// /// The shared memory is given a parameter to determine whether or not to /// reuse an existing mapped memory secion. When the node is first created @@ -98,7 +98,7 @@ private SharedMemory() /// is created, at this point the there should be no shared memory with the /// same name. However when we create the reader and writer threads /// (which happens on node reuse) we want to reuse the memory. - /// + /// internal SharedMemory(string name, SharedMemoryType type, bool allowExistingMapping) { this.type = type; diff --git a/src/Framework/BuildEventContext.cs b/src/Framework/BuildEventContext.cs index 0cda93d76c6..fe29dffa9f3 100644 --- a/src/Framework/BuildEventContext.cs +++ b/src/Framework/BuildEventContext.cs @@ -25,7 +25,7 @@ public class BuildEventContext private readonly int _targetId; /// - ///The node-unique project request context the event was in + /// The node-unique project request context the event was in /// private readonly int _projectContextId; diff --git a/src/Framework/Sdk/SdkResolver.cs b/src/Framework/Sdk/SdkResolver.cs index 9280c30af24..a9da357212d 100644 --- a/src/Framework/Sdk/SdkResolver.cs +++ b/src/Framework/Sdk/SdkResolver.cs @@ -30,7 +30,7 @@ public abstract class SdkResolver /// the SDK could not be resolved. Return null if the resolver is not /// applicable for a particular . /// - /// + /// /// Note: You must use to return a result. /// /// diff --git a/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs b/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs index 2d0aaec17b3..d2c33492cb5 100644 --- a/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs +++ b/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs @@ -7101,7 +7101,7 @@ public void TestProfileAndSubset2() /// Verify setting certain combinations of Profile parameters will case an error to be logged and rar to fail execution. /// /// Test the case where the profile name is not set and ProfileFullFrameworkFolders is set. - /// + /// [Fact] public void TestProfileParameterCombinations() { @@ -7116,7 +7116,7 @@ public void TestProfileParameterCombinations() /// /// Verify when the frameworkdirectory metadata is not set on the ProfileFullFrameworkAssemblyTables that an /// error is logged and rar fails. - /// + /// [Fact] public void TestFrameworkDirectoryMetadata() { @@ -7177,7 +7177,7 @@ private void InitializeMockEngine(out ReferenceTable referenceTable, out MockEng } /// - ///Initialize the black list and use it to remove references from the reference table + /// Initialize the black list and use it to remove references from the reference table /// private void InitializeExclusionList(ReferenceTable referenceTable, AssemblyNameExtension[] assembliesForBlackList, out Dictionary blackList) { @@ -7742,12 +7742,12 @@ public void Regress397129_HandleInvalidDirectoriesAndFiles_Case2() /// Consider this dependency chain: /// /// App - /// References - A - /// Depends on B - /// Will be found by hintpath. - /// References -B - /// No hintpath - /// Exists in A.dll's folder. + /// References - A + /// Depends on B + /// Will be found by hintpath. + /// References -B + /// No hintpath + /// Exists in A.dll's folder. /// /// B.dll should be unresolved even though its in A's folder because primary resolution needs to work /// without looking at dependencies because of the load-time perf scenarios don't look at dependencies. diff --git a/src/Tasks.UnitTests/AssemblyDependency/SpecificVersionPrimary.cs b/src/Tasks.UnitTests/AssemblyDependency/SpecificVersionPrimary.cs index ad61691d2b4..58aee27c91f 100644 --- a/src/Tasks.UnitTests/AssemblyDependency/SpecificVersionPrimary.cs +++ b/src/Tasks.UnitTests/AssemblyDependency/SpecificVersionPrimary.cs @@ -89,8 +89,8 @@ public void Exists() /// Primary references are never unified. This is because: /// (a) The user expects that a primary reference will be respected. /// (b) When FindDependencies is false and AutoUnify is true, we'd have to find all - /// dependencies anyway to make things work consistently. This would be a significant - /// perf hit when loading large solutions. + /// dependencies anyway to make things work consistently. This would be a significant + /// perf hit when loading large solutions. /// [Fact] [Trait("Category", "mono-osx-failing")] diff --git a/src/Tasks/FindInvalidProjectReferences.cs b/src/Tasks/FindInvalidProjectReferences.cs index 54c84eaacdf..f800cbc226a 100644 --- a/src/Tasks/FindInvalidProjectReferences.cs +++ b/src/Tasks/FindInvalidProjectReferences.cs @@ -15,7 +15,7 @@ public class FindInvalidProjectReferences : TaskExtension { #region Fields - /// + /// /// Regex for breaking up the platform moniker /// Example: XNA, Version=8.0 /// diff --git a/src/Tasks/InstalledSDKResolver.cs b/src/Tasks/InstalledSDKResolver.cs index ac0ff362d0b..0214cac65ba 100644 --- a/src/Tasks/InstalledSDKResolver.cs +++ b/src/Tasks/InstalledSDKResolver.cs @@ -10,7 +10,7 @@ namespace Microsoft.Build.Tasks { /// - ///There is no search path element because the only way to get this resolver is by having the SDKName metadata on the reference. + /// There is no search path element because the only way to get this resolver is by having the SDKName metadata on the reference. /// internal class InstalledSDKResolver : Resolver { diff --git a/src/Tasks/ResolveSDKReference.cs b/src/Tasks/ResolveSDKReference.cs index 74d9ab45c2c..02b644a532f 100644 --- a/src/Tasks/ResolveSDKReference.cs +++ b/src/Tasks/ResolveSDKReference.cs @@ -21,7 +21,7 @@ public class ResolveSDKReference : TaskExtension { #region fields - /// + /// /// Regex for breaking up the sdk reference include into pieces. /// Example: XNA, Version=8.0 /// diff --git a/src/Tasks/RoslynCodeTaskFactory/RoslynCodeTaskFactory.cs b/src/Tasks/RoslynCodeTaskFactory/RoslynCodeTaskFactory.cs index 069d4272c99..8ac948b8239 100644 --- a/src/Tasks/RoslynCodeTaskFactory/RoslynCodeTaskFactory.cs +++ b/src/Tasks/RoslynCodeTaskFactory/RoslynCodeTaskFactory.cs @@ -256,16 +256,16 @@ internal static string GetSourceCode(RoslynCodeTaskFactoryTaskInfo taskInfo, ICo } } - /// + /// /// Parses and validates the body of the <UsingTask />. /// - /// A used to log events during parsing. - /// The name of the task. - /// The raw inner XML string of the <UsingTask />> to parse and validate. + /// A used to log events during parsing. + /// The name of the task. + /// The raw inner XML string of the <UsingTask />> to parse and validate. /// An containing parameters for the task. /// A object that receives the details of the parsed task. /// true if the task body was successfully parsed, otherwise false. - /// + /// /// The will look like this: /// Date: Mon, 3 Jan 2022 11:01:34 +1000 Subject: [PATCH 2/5] Fixes from code review --- src/Build/Definition/Project.cs | 12 ++++++++- src/Framework/Sdk/SdkResolver.cs | 20 +++++++------- .../AssemblyDependency/Miscellaneous.cs | 15 +++++++---- .../SpecificVersionPrimary.cs | 26 +++++++++++++------ .../RoslynCodeTaskFactory.cs | 26 ++++++++++--------- 5 files changed, 63 insertions(+), 36 deletions(-) diff --git a/src/Build/Definition/Project.cs b/src/Build/Definition/Project.cs index 77997bc7040..c2131da1cbd 100644 --- a/src/Build/Definition/Project.cs +++ b/src/Build/Definition/Project.cs @@ -855,6 +855,7 @@ public static string GetEvaluatedItemIncludeEscaped(ProjectItemDefinition item) /// /// /// + /// *.txt

/// /// (both outside and inside project cone) @@ -865,9 +866,12 @@ public static string GetEvaluatedItemIncludeEscaped(ProjectItemDefinition item) /// /// (If Bar has globs, they will have been included when querying Bar ProjectItems for globs) /// + /// ]]> ///
/// /// Example result: + /// + /// + /// ///
/// + /// /// is a that combines all globs in the include element and ignores /// all the fragments in the exclude attribute and all the fragments in all Remove elements that apply to the include element. + /// /// /// Users can construct a composite glob that incorporates all the globs in the Project: /// + /// r.MSBuildGlob).ToArray()); /// uberGlob.IsMatch("foo.cs"); + /// ]]> /// - /// + /// /// /// /// List of . diff --git a/src/Framework/Sdk/SdkResolver.cs b/src/Framework/Sdk/SdkResolver.cs index a9da357212d..1bbb23d19f0 100644 --- a/src/Framework/Sdk/SdkResolver.cs +++ b/src/Framework/Sdk/SdkResolver.cs @@ -20,21 +20,21 @@ public abstract class SdkResolver public abstract int Priority { get; } /// - /// Resolves the specified SDK reference. + /// Resolves the specified SDK reference. /// /// A containing the referenced SDKs be resolved. /// Context for resolving the SDK. /// Factory class to create an /// - /// An containing the resolved SDKs or associated error / reason - /// the SDK could not be resolved. Return null if the resolver is not - /// applicable for a particular . - /// + /// An containing the resolved SDKs or associated error / reason + /// the SDK could not be resolved. Return null if the resolver is not + /// applicable for a particular . + /// /// - /// Note: You must use to return a result. - /// - /// - public abstract SdkResult Resolve(SdkReference sdkReference, SdkResolverContext resolverContext, - SdkResultFactory factory); + /// Note: You must use to return a result. + ///
+ public abstract SdkResult Resolve(SdkReference sdkReference, + SdkResolverContext resolverContext, + SdkResultFactory factory); } } diff --git a/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs b/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs index d2c33492cb5..81c8e7be898 100644 --- a/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs +++ b/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs @@ -7739,19 +7739,24 @@ public void Regress397129_HandleInvalidDirectoriesAndFiles_Case2() Execute(t); } + /// /// Consider this dependency chain: /// /// App + /// + /// + /// /// B.dll should be unresolved even though its in A's folder because primary resolution needs to work /// without looking at dependencies because of the load-time perf scenarios don't look at dependencies. /// We must be consistent between primaries resolved with FindDependencies=true and FindDependencies=false. + /// [Fact] public void ByDesignRelatedTo454863_PrimaryReferencesDontResolveToParentFolders() { diff --git a/src/Tasks.UnitTests/AssemblyDependency/SpecificVersionPrimary.cs b/src/Tasks.UnitTests/AssemblyDependency/SpecificVersionPrimary.cs index 58aee27c91f..4e5758bfcc8 100644 --- a/src/Tasks.UnitTests/AssemblyDependency/SpecificVersionPrimary.cs +++ b/src/Tasks.UnitTests/AssemblyDependency/SpecificVersionPrimary.cs @@ -78,19 +78,29 @@ public void Exists() /// /// In this case, - /// - A single primary version-strict reference was passed in to assembly version 1.0.0.0 - /// - An app.config was passed in that promotes a *different* assembly version name from - // 1.0.0.0 to 2.0.0.0 - /// - Version 1.0.0.0 of the file exists. - /// - Version 2.0.0.0 of the file exists. + /// + /// A single primary version-strict reference was passed in to assembly version 1.0.0.0 + /// + /// An app.config was passed in that promotes a *different* assembly version name from + /// 1.0.0.0 to 2.0.0.0 + /// + /// Version 1.0.0.0 of the file exists. + /// Version 2.0.0.0 of the file exists. + /// /// Expected: - /// -- The resulting assembly returned should be 1.0.0.0. + /// + /// The resulting assembly returned should be 1.0.0.0. + /// /// Rationale: /// Primary references are never unified. This is because: - /// (a) The user expects that a primary reference will be respected. - /// (b) When FindDependencies is false and AutoUnify is true, we'd have to find all + /// + /// + /// The user expects that a primary reference will be respected. + /// When FindDependencies is false and AutoUnify is true, we'd have to find all /// dependencies anyway to make things work consistently. This would be a significant /// perf hit when loading large solutions. + /// + /// /// [Fact] [Trait("Category", "mono-osx-failing")] diff --git a/src/Tasks/RoslynCodeTaskFactory/RoslynCodeTaskFactory.cs b/src/Tasks/RoslynCodeTaskFactory/RoslynCodeTaskFactory.cs index 8ac948b8239..2d8ee1d418b 100644 --- a/src/Tasks/RoslynCodeTaskFactory/RoslynCodeTaskFactory.cs +++ b/src/Tasks/RoslynCodeTaskFactory/RoslynCodeTaskFactory.cs @@ -257,26 +257,28 @@ internal static string GetSourceCode(RoslynCodeTaskFactoryTaskInfo taskInfo, ICo } /// - /// Parses and validates the body of the <UsingTask />. - /// + /// Parses and validates the body of the <UsingTask />. + ///
/// A used to log events during parsing. /// The name of the task. /// The raw inner XML string of the <UsingTask />> to parse and validate. /// An containing parameters for the task. /// A object that receives the details of the parsed task. - /// true if the task body was successfully parsed, otherwise false. + /// true if the task body was successfully parsed, otherwise false. /// - /// The will look like this: - /// will look like this: + /// + /// - /// - /// - /// // Source code - /// + /// + /// + /// + /// // Source code + /// /// - /// ]]> - /// + /// ]]> + /// + /// internal static bool TryLoadTaskBody(TaskLoggingHelper log, string taskName, string taskBody, ICollection parameters, out RoslynCodeTaskFactoryTaskInfo taskInfo) { taskInfo = new RoslynCodeTaskFactoryTaskInfo From 750b8cb78f080d22bbf5b2edfc5ad7d38f39aa18 Mon Sep 17 00:00:00 2001 From: elachlan <2433737+elachlan@users.noreply.github.com> Date: Tue, 4 Jan 2022 09:10:59 +1000 Subject: [PATCH 3/5] revert changes to deprecated --- src/Deprecated/Engine/LocalProvider/SharedMemory.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Deprecated/Engine/LocalProvider/SharedMemory.cs b/src/Deprecated/Engine/LocalProvider/SharedMemory.cs index 10752cb9136..30bb926fc11 100644 --- a/src/Deprecated/Engine/LocalProvider/SharedMemory.cs +++ b/src/Deprecated/Engine/LocalProvider/SharedMemory.cs @@ -89,7 +89,7 @@ private SharedMemory() /// This type however does not set the type of the memory mapped section, /// the memory mapped section itself is created /// with READWRITE access. - /// + /// /// /// The shared memory is given a parameter to determine whether or not to /// reuse an existing mapped memory secion. When the node is first created @@ -98,7 +98,7 @@ private SharedMemory() /// is created, at this point the there should be no shared memory with the /// same name. However when we create the reader and writer threads /// (which happens on node reuse) we want to reuse the memory. - /// + /// internal SharedMemory(string name, SharedMemoryType type, bool allowExistingMapping) { this.type = type; From fbb9c736c6331a649fdef01125509fffcebd4727 Mon Sep 17 00:00:00 2001 From: elachlan <2433737+elachlan@users.noreply.github.com> Date: Sat, 8 Jan 2022 17:12:29 +1000 Subject: [PATCH 4/5] revert changes Sdk/SdkResolver.cs --- src/Framework/Sdk/SdkResolver.cs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Framework/Sdk/SdkResolver.cs b/src/Framework/Sdk/SdkResolver.cs index 1bbb23d19f0..9280c30af24 100644 --- a/src/Framework/Sdk/SdkResolver.cs +++ b/src/Framework/Sdk/SdkResolver.cs @@ -20,21 +20,21 @@ public abstract class SdkResolver public abstract int Priority { get; } /// - /// Resolves the specified SDK reference. + /// Resolves the specified SDK reference. /// /// A containing the referenced SDKs be resolved. /// Context for resolving the SDK. /// Factory class to create an /// - /// An containing the resolved SDKs or associated error / reason - /// the SDK could not be resolved. Return null if the resolver is not - /// applicable for a particular . - /// - /// - /// Note: You must use to return a result. - /// - public abstract SdkResult Resolve(SdkReference sdkReference, - SdkResolverContext resolverContext, - SdkResultFactory factory); + /// An containing the resolved SDKs or associated error / reason + /// the SDK could not be resolved. Return null if the resolver is not + /// applicable for a particular . + /// + /// + /// Note: You must use to return a result. + /// + /// + public abstract SdkResult Resolve(SdkReference sdkReference, SdkResolverContext resolverContext, + SdkResultFactory factory); } } From b8bdc8d5eb7ea6ecd3e2b391446ea14b9b15765b Mon Sep 17 00:00:00 2001 From: elachlan <2433737+elachlan@users.noreply.github.com> Date: Sat, 8 Jan 2022 17:18:06 +1000 Subject: [PATCH 5/5] enable warning on SA1004 --- eng/Common.globalconfig | 2 +- src/Framework/Sdk/SdkResolver.cs | 25 +++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/eng/Common.globalconfig b/eng/Common.globalconfig index fd878420d57..2a940a335d4 100644 --- a/eng/Common.globalconfig +++ b/eng/Common.globalconfig @@ -711,7 +711,7 @@ dotnet_diagnostic.SA1002.severity = suggestion dotnet_diagnostic.SA1003.severity = none # Documentation line should begin with a space -dotnet_diagnostic.SA1004.severity = suggestion +dotnet_diagnostic.SA1004.severity = warning # Single line comment should begin with a space dotnet_diagnostic.SA1005.severity = suggestion diff --git a/src/Framework/Sdk/SdkResolver.cs b/src/Framework/Sdk/SdkResolver.cs index 28c1774f028..728bc476bf3 100644 --- a/src/Framework/Sdk/SdkResolver.cs +++ b/src/Framework/Sdk/SdkResolver.cs @@ -6,40 +6,41 @@ namespace Microsoft.Build.Framework { /// - /// An abstract interface for classes that can resolve a Software Development Kit (SDK). + /// An abstract interface for classes that can resolve a Software Development Kit (SDK). /// public abstract class SdkResolver { /// - /// Name of the SDK resolver to be displayed in build output log. + /// Gets the name of the to be displayed in build output log. /// public abstract string Name { get; } /// - /// Gets the self-described resolution priority order. MSBuild will sort resolvers - /// by this value. + /// Gets the self-described resolution priority order. MSBuild will sort resolvers + /// by this value. /// public abstract int Priority { get; } /// - /// Resolves the specified SDK reference. + /// Resolves the specified SDK reference. /// /// A containing the referenced SDKs be resolved. /// Context for resolving the SDK. /// Factory class to create an /// - /// An containing the resolved SDKs or associated error / reason - /// the SDK could not be resolved. Return null if the resolver is not - /// applicable for a particular . - /// - /// containing the resolved SDKs or associated error / reason + /// the SDK could not be resolved. Return null if the resolver is not + /// applicable for a particular . + /// + /// [!NOTE] /// > You must use the to return a result. /// ]]> /// /// - public abstract SdkResult Resolve(SdkReference sdkReference, SdkResolverContext resolverContext, - SdkResultFactory factory); + public abstract SdkResult Resolve(SdkReference sdkReference, + SdkResolverContext resolverContext, + SdkResultFactory factory); } }