MSBuild尝试使用GAC中的任务加载dll

时间:2019-03-21 08:12:07

标签: build msbuild task gac

UsingTask 元素与 AssemblyFile 属性一起使用时,

MSBuild失败。通过以下方式导入任务时找不到程序集:

<UsingTask AssemblyFile="$(MSBuildThisFileDirectory)ESRI.ArcGIS.Server.SDK.BuildTasks.dll" TaskName="GenerateServerAddInXml" />

但是,程序集文件存在并且位于正确的路径中。融合日志显示,MSBuild不会在指定路径上进行搜索,仅在MSBuild.exe目录中然后在不存在dll的GAC中进行探测。

LOG: Post-policy reference: ESRI.ArcGIS.Server.SDK.BuildTasks, Version=10.6.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/ESRI.ArcGIS.Server.SDK.BuildTasks.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/ESRI.ArcGIS.Server.SDK.BuildTasks/ESRI.ArcGIS.Server.SDK.BuildTasks.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/ESRI.ArcGIS.Server.SDK.BuildTasks.EXE.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/ESRI.ArcGIS.Server.SDK.BuildTasks/ESRI.ArcGIS.Server.SDK.BuildTasks.EXE.

MSDN说, AssemblyFile 属性等效于.NET中的 Assembly.LoadFrom 方法。

有趣的是,这种相同的机制可以很好地适用于另一个dll。有什么想法可以解决问题吗? 这些dll之间实际上是有区别的-后者没有经过严格签名。

更新:我从dll中删除了强签名(在 ildasm ilasm 的帮助下),但这仍然不起作用。 / p>

0 个答案:

没有答案