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>