diff --git a/eng/Packages.props b/eng/Packages.props index e316a6bccd291..3f4d10f9e096f 100644 --- a/eng/Packages.props +++ b/eng/Packages.props @@ -24,7 +24,7 @@ @@ -314,7 +314,7 @@ Infra --> - + diff --git a/src/Compilers/Core/MSBuildTask/Microsoft.CSharp.Core.targets b/src/Compilers/Core/MSBuildTask/Microsoft.CSharp.Core.targets index c3a98f057cd1c..ccb7c0b596891 100644 --- a/src/Compilers/Core/MSBuildTask/Microsoft.CSharp.Core.targets +++ b/src/Compilers/Core/MSBuildTask/Microsoft.CSharp.Core.targets @@ -59,6 +59,14 @@ @(CustomAdditionalCompileOutputs)" Returns="@(CscCommandLineArgs)" DependsOnTargets="$(CoreCompileDependsOn);_BeforeVBCSCoreCompile"> + + + + + + diff --git a/src/Compilers/Core/MSBuildTask/Microsoft.VisualBasic.Core.targets b/src/Compilers/Core/MSBuildTask/Microsoft.VisualBasic.Core.targets index 6b97be64b9bcd..9b11fbba6285d 100644 --- a/src/Compilers/Core/MSBuildTask/Microsoft.VisualBasic.Core.targets +++ b/src/Compilers/Core/MSBuildTask/Microsoft.VisualBasic.Core.targets @@ -30,6 +30,14 @@ @(CustomAdditionalCompileOutputs)" Returns="@(VbcCommandLineArgs)" DependsOnTargets="$(CoreCompileDependsOn);_BeforeVBCSCoreCompile"> + + + + + + <_NoWarnings Condition="'$(WarningLevel)' == '0'">true <_NoWarnings Condition="'$(WarningLevel)' == '1'">false diff --git a/src/Compilers/Core/MSBuildTaskTests/SdkIntegrationTests.cs b/src/Compilers/Core/MSBuildTaskTests/SdkIntegrationTests.cs index dfe22ed415994..7db12af43edeb 100644 --- a/src/Compilers/Core/MSBuildTaskTests/SdkIntegrationTests.cs +++ b/src/Compilers/Core/MSBuildTaskTests/SdkIntegrationTests.cs @@ -7,12 +7,12 @@ using System.IO; using System.Linq; using System.Text; -using System.Threading.Tasks; +using Basic.CompilerLog.Util; +using Microsoft.Build.Logging.StructuredLogger; using Microsoft.CodeAnalysis.Test.Utilities; using Roslyn.Test.Utilities; using Xunit; using Xunit.Abstractions; -using Basic.CompilerLog.Util; namespace Microsoft.CodeAnalysis.BuildTasks.UnitTests; @@ -200,4 +200,79 @@ End Module ArtifactUploadUtil.SetSucceeded(); } + + [ConditionalFact(typeof(DotNetSdkAvailable))] + [WorkItem("https://github.com/dotnet/roslyn/issues/82721")] + public void EditorConfig_EmbeddedInBinlog_Generated() + { + var projectFile = ProjectDir.CreateFile("console.csproj"); + projectFile.WriteAllText($""" + + + {NetCoreTfm} + + + + + + + """); + + ProjectDir.CreateFile("c.cs").WriteAllText(""" + class C { } + """); + + var binlogPath = RunBuild(projectFile.Path); + + var build = BinaryLog.ReadBuild(binlogPath); + + string embeddedText = build.SourceFiles + .Single(static f => f.FullPath.EndsWith("GeneratedMSBuildEditorConfig.editorconfig", StringComparison.OrdinalIgnoreCase)) + .Text; + + Assert.Contains("is_global = true", embeddedText); + Assert.Contains("build_property.RootNamespace", embeddedText); + ArtifactUploadUtil.SetSucceeded(); + } + + [ConditionalFact(typeof(DotNetSdkAvailable))] + [WorkItem("https://github.com/dotnet/roslyn/issues/82721")] + public void EditorConfig_EmbeddedInBinlog_FromTarget() + { + string analyzerGlobalConfigText = """ + is_global = true + some_prop = some_val + """; + var analyzerGlobalConfig = ProjectDir.CreateFile("analyzer.globalconfig").WriteAllText(analyzerGlobalConfigText); + + var projectFile = ProjectDir.CreateFile("console.csproj"); + projectFile.WriteAllText($""" + + + {NetCoreTfm} + + + + + + + + + """); + + ProjectDir.CreateFile("c.cs").WriteAllText(""" + class C { } + """); + + var binlogPath = RunBuild(projectFile.Path); + + var build = BinaryLog.ReadBuild(binlogPath); + + string embeddedText = build.SourceFiles + .Single(f => f.FullPath.Equals(analyzerGlobalConfig.Path, StringComparison.OrdinalIgnoreCase)) + .Text; + + Assert.Equal(analyzerGlobalConfigText, embeddedText); + ArtifactUploadUtil.SetSucceeded(); + } } diff --git a/src/Compilers/Core/MSBuildTaskTests/TestUtilities/DotNetSdkTestBase.cs b/src/Compilers/Core/MSBuildTaskTests/TestUtilities/DotNetSdkTestBase.cs index 61e4aca2c4cdc..c1e9103bd9445 100644 --- a/src/Compilers/Core/MSBuildTaskTests/TestUtilities/DotNetSdkTestBase.cs +++ b/src/Compilers/Core/MSBuildTaskTests/TestUtilities/DotNetSdkTestBase.cs @@ -133,6 +133,9 @@ private static void EmitTestHelperTargets( + + +