我一直在互联网上寻找有关此问题的答案,并且确实可以使用帮助。
我已经看过有关此错误的其他帖子,但这些答案都没有帮助我。
完整的错误是,
类型“xxx”是在未引用的程序集中定义的。您必须添加对程序集“xxx,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”的引用。
该解决方案在本地构建良好,但当我在构建服务器上触发构建时会发生错误。
以下是我迄今为止为解决此问题所做的操作:
- 确保所有项目参考都是正确的(让建筑师审查它
与我一起)
- 将“SpecificVersion”属性更改为 true
- 删除了引用并将其添加回来(在 VS2012 中并进行了编辑
.csproj 文件本身)
- 在构建服务器上本地构建解决方案,它通过了
-
EDIT- 我还应该提到我已经在两个不同的构建服务器上构建了这个解决方案,但仍然遇到相同的错误
我正在使用 VS2012 和 TFS2012 来执行此操作。
我真的很感激任何帮助,谢谢。
*UPDATE:*我刚刚在构建服务器上执行了 MSBuild,但将配置更改为“发布”,并且能够重现部分错误。但一些关键的区别是,它正在寻找的版本突然变成了 1.3.1.15 而不是 0.0.0.0,并且 PublicKeyToken 不再为空。有谁知道这意味着什么?该程序集的版本应该是 0.0.0.0。
因此,在与我的架构师一起花了几个小时后,我们发现了这个问题。我们的开发人员将同一个 dll 的多个副本埋在源代码管理的各个文件夹中。其中一个项目引用了不正确的 .dll。
修复引用并删除多余的不需要的 .dll 后,错误消失了,我们的构建终于可以工作了! :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)