未验证 提交 6211e10f 编写于 作者: T Tomáš Matoušek 提交者: GitHub

Fix path to Microsoft.Build.Tasks.CodeAnalysis.dll in Microsoft.Managed.Core.targets (#26298)

上级 9e2a3769
......@@ -4,7 +4,7 @@
<!--
Common targets for managed compilers.
-->
<UsingTask TaskName="Microsoft.CodeAnalysis.BuildTasks.MapSourceRoots" AssemblyFile="$(RoslynTargetsPath)\Microsoft.Build.Tasks.CodeAnalysis.dll" Condition="'$(MSBuildAssemblyVersion)' != ''" />
<UsingTask TaskName="Microsoft.CodeAnalysis.BuildTasks.MapSourceRoots" AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.Tasks.CodeAnalysis.dll" />
<Target Name="ShimReferencePathsWhenCommonTargetsDoesNotUnderstandReferenceAssemblies"
BeforeTargets="CoreCompile"
......
......@@ -153,12 +153,16 @@ public DotNetSdkTestBase()
ProjectDir.CreateFile("Directory.Build.targets").WriteAllText("<Project/>");
ProjectDir.CreateFile(".editorconfig").WriteAllText("root = true");
Assert.True(File.Exists(Path.Combine(testBinDirectory, "Microsoft.CSharp.Core.targets")));
Assert.True(File.Exists(Path.Combine(testBinDirectory, "Microsoft.VisualBasic.Core.targets")));
var csharpCoreTargets = Path.Combine(testBinDirectory, "Microsoft.CSharp.Core.targets");
var visualBasicCoreTargets = Path.Combine(testBinDirectory, "Microsoft.VisualBasic.Core.targets");
Assert.True(File.Exists(csharpCoreTargets));
Assert.True(File.Exists(visualBasicCoreTargets));
EnvironmentVariables = new Dictionary<string, string>()
{
{ "RoslynTargetsPath", testBinDirectory },
{ "CSharpCoreTargetsPath", csharpCoreTargets },
{ "VisualBasicCoreTargetsPath", visualBasicCoreTargets },
{ "MSBuildSDKsPath", sdksDir },
{ "DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR", sdksDir }
};
......@@ -185,7 +189,10 @@ protected void VerifyValues(string props, string[] targets, string[] expressions
var testBinDirectory = Path.GetDirectoryName(typeof(DotNetSdkTests).Assembly.Location);
var binLog = Path.Combine(ProjectDir.Path, $"build{_logIndex++}.binlog");
var buildResult = ProcessUtilities.Run(DotNetPath, $@"msbuild ""{Project.Path}"" /t:{targetsArg} /p:Configuration={Configuration} /p:RoslynTargetsPath=""{testBinDirectory}"" /bl:""{binLog}""",
// RoslynTargetsPath is a path to the built-in Roslyn compilers in the .NET SDK.
// For testing we are using compilers from custom location (this emulates usage of Microsoft.Net.Compilers package.
// The core targets should be imported from CSharpCoreTargetsPath and VisualBasicCoreTargetsPath and the compiler tasks from the same location.
var buildResult = ProcessUtilities.Run(DotNetPath, $@"msbuild ""{Project.Path}"" /t:{targetsArg} /p:RoslynTargetsPath=""<nonexistent directory>"" /p:Configuration={Configuration} /bl:""{binLog}""",
additionalEnvironmentVars: EnvironmentVariables);
Assert.True(buildResult.ExitCode == 0, $"Failed with exit code {buildResult.ExitCode}: {buildResult.Output}");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册