在使用dotnet構建的Microsoft Build Task中是否可以使用軟件包引用(如Microsoft.CodeAnalysis)?如何在dotnet中的任務中訪問軟件包引用
我使用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
。該任務將失敗,並
The "MyTask" task failed unexpectedly. System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.CodeAnalysis, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. File name: 'Microsoft.CodeAnalysis, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
例外。
當試圖通過AssemblyLoadContext.Default.LoadFromAssemblyPath
加載裝基準我得到
Could not load file or assembly 'Microsoft.CodeAnalysis, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
沒有任何額外的信息。在.net核心控制檯應用程序中運行時也不起作用。我嘗試了第二個(更簡單的)程序包,它可以通過.net核心控制檯應用程序中的LoadFromAssemblyPath
加載,但在以dotnet生成任務運行時仍不起作用。
這兩個程序集都可以在經典的net4.6中運行,在控制檯應用程序中運行時爲Assembly.LoadFile
,並且在運行時儘管是Task。
感謝您的回答。我修改我的問題是更通用的。任何想法爲什麼'AssemblyLoadContext.Default.LoadFromAssemblyPath'作爲dotnet構建任務運行時不起作用? – Dresel