【发布时间】:2013-12-11 18:29:26
【问题描述】:
我们正在尝试设置 Jenkins(构建服务器)作业来构建基于 VSTO 的 Office 加载项。但是,在将 DLL 复制到项目的bin 目录后,我不断收到一个奇怪的错误,即构建过程失败:
Error 11 The "FindRibbons" task failed unexpectedly.
System.IO.FileNotFoundException:
Could not load file or assembly 'MyAddIn, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null' or one of its dependencies.
The system cannot find the file specified.
File name: 'MyAddIn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
所以问题是由 Office 加载项构建目标触发的“FindRibbons”任务已成功将 MyAddIn DLL 识别为 Office 加载项,但无法找到并加载它!
有什么想法吗?我希望能够直接调试 FindRibbons 任务,但挂钩和调试编译过程似乎有点极端......
以下是一些观察:
- 在我们用于绑定 MyAddIn 程序集的构建服务器的 Fusion 日志中,它看起来像是在 MSBuild.exe 所在的文件夹 (
C:\Windows\Microsoft.NET\Framework\v4.0.30319\) 中查找,而在其他任何地方都没有。 在我的开发机器上,MyAddIn 没有 Fusion 日志条目!但构建过程成功并且 Kivo 工作正常。 - 在我的开发和构建机器上,我还有
WhereRefBind!Host=(LocalMachine)!FileName=(PresentationCore.dll)和ExplicitBind!FileName=(MyAddIn.dll)的 Fusion 日志条目,显示绑定成功。 - 无论我是使用 Visual Studio 还是命令行中的 MSBuild 来构建项目,构建服务器都会出现此错误。
- 我已确保 .NET/MSBuild/VS2012 版本在我的开发机器和构建服务器上是相同的,并且错误仍然存在。唯一的区别似乎是构建服务器运行的是 Windows Server 2012(因为它是 Azure,我们无法启动 Windows 7 映像)。
【问题讨论】:
标签: c# .net visual-studio-2012 msbuild jenkins