我有一个参考Telerik组件的解决方案。引用的版本已安装在构建服务器上。问题是持续集成构建总是成功,直到我在解决方案和构建服务器上升级Telerik程序集。现在构建失败了,给出了经典:
无法解析此引用。
我检查了我的解决方案,所有内容都设置为引用特定版本。最令人惊讶的是,如果我在构建服务器上本地打开解决方案,一切都将构建没有问题......这意味着Telerik程序集已经以某种方式发布,但由于未知原因,当调用MSBuild来编译解决方案时通过构建服务,它不起作用。
有什么想法吗?
答案 0 :(得分:7)
更新到Q3版本后,我遇到了同样的问题。
为了解决这个问题,我构建了Logging Verbosity设置为Diagnostic的解决方案,并发现MSBuild从不打算查看Telerik文件夹。
因此,要在构建中包含该文件夹,我们只需添加一个MSBuild参数即可添加它: / p:ReferencePath =“C:\ Program Files \ Telerik \ RadControls for WPF Q3 2012 \ Binaries \ WPF40”
它可能不是最好的,每次更新RadControls时都需要更新,但它确实有效。
我们在x86安装上运行构建服务器,因此Telerik位于C:\ Program Files下,但如果您在x64上运行,它位于C:\ Program Files(x86)下,因此如果您运行多个构建服务器在x64和x86安装上,您必须指定两个路径。
答案 1 :(得分:0)
尝试删除 - 然后添加对更新的dll的引用 - 然后您可以在proj文件中看到与引用的程序集有任何差异。
为msbuild启用详细\ diag模式(/ v:diag命令行键)并检查构建日志。 Diag模式有关于引用库搜索过程的非常详细的输出。
答案 2 :(得分:0)
我通常认为最好将引用的程序集复制到解决方案中并从那里引用它们。然后构建服务器和其他开发人员不必担心安装该特定版本,并且您可以支持运行不同版本组件的多个项目。