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(
+
+
+