Msbuild 如何访问dotnet build任务中的包引用

Msbuild 如何访问dotnet build任务中的包引用,msbuild,.net-core,msbuild-task,Msbuild,.net Core,Msbuild Task,是否可以在运行dotnet Build的Microsoft Build任务中使用类似Microsoft.CodeAnalysis的包引用 我正在对任务库和以下包引用使用netstandard1.5: <PackageReference Include="Microsoft.Build" Version="15.3.0-preview-000117-01" /> <PackageReference Include="Microsoft.Build.Utilities.Core"

是否可以在运行dotnet Build的Microsoft Build任务中使用类似Microsoft.CodeAnalysis的包引用

我正在对任务库和以下包引用使用
netstandard1.5

<PackageReference Include="Microsoft.Build" Version="15.3.0-preview-000117-01" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="15.3.0-preview-000117-01" />
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="2.2.0" />

消费项目是一个
netcoreapp1.1
。任务失败,出现错误

该“MyTask”任务意外失败。
System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.CodeAnalysis,版本=2.2.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件。
文件名:“Microsoft.CodeAnalysis,版本=2.2.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”

例外

尝试通过
AssemblyLoadContext.Default.LoadFromAssemblyPath加载包引用时,我得到

无法加载文件或程序集“Microsoft.CodeAnalysis,版本=2.2.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”。

没有任何附加信息。这在.net核心控制台应用程序中运行时也不起作用。我尝试了第二个(更简单的)包,它可以通过.net核心控制台应用程序中的
LoadFromAssemblyPath
加载,但在作为dotnet构建任务运行时仍然不起作用


当在控制台应用程序中使用
Assembly.LoadFile
在经典net4.6中运行时,以及作为任务运行时,可以加载这两个程序集。

不幸的是,任务DLL无法引用任何包-它们加载到正在运行的msbuild实例中,并且只能引用宿主可用的DLLmsbuild实例。可以通过.net core中的
AssemblyLoadContext
或.net framework中的
AppDomain.Load()
加载任何其他DLL。未对任务的dll文件执行依赖项解析,这也意味着可能与已加载的dll、msbuild的不同部分或其他任务存在冲突。在.NET Framework MSBuild中,任务可以隔离到其自己的AppDomain,但此机制在.NET Core上不可用。

谢谢您的回答。我修改了我的问题,使之更一般。知道为什么
AssemblyLoadContext.Default.LoadFromAssemblyPath
在作为dotnet构建任务运行时不起作用吗?