我一直在网上寻找答案,并且可以真正使用帮助。
我已经查看了有关此错误的其他帖子,但这些答案都没有帮助我。
完整错误是,
类型'xxx'在未引用的程序集中定义。您必须添加对程序集'xxx,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'的引用。
解决方案在本地构建良好,但是当我在构建服务器上触发构建时会发生错误。
以下是我迄今为止试图解决的问题:
我正在使用VS2012和TFS2012来执行此操作。
我真的很感激任何帮助,谢谢。
* 更新: *我刚刚在构建服务器上执行了MSBuild,但是将配置更改为“Release”,并且能够重现部分错误。但是,一些关键的差异是它正在寻找的版本突然是1.3.1.15而不是0.0.0.0而PublicKeyToken不再是null。有谁知道这可能意味着什么?程序集的版本应该是0.0.0.0。
答案 0 :(得分:5)
因此,在与我的建筑师再花几个小时之后,我们发现了这个问题。我们的开发人员在源代码管理中的各种文件夹中隐藏了同一个dll的多个副本。其中一个项目引用了不正确的.dll。
修复引用并删除额外不需要的.dll后,错误消失了,我们的构建终于工作了! :)
答案 1 :(得分:0)
您提到过您尝试在测试服务器上构建解决方案。您是否使用visual studio 2012构建解决方案,或者您是否实际运行了msbuild?
准确的测试是使用与此类似的msbuild:
MSBuild MySolution.sln / p:Configuration =“Debug”/ p:Platform =“CPU Any”
你可以通过查看TFS Build的构建日志来获得确切的命令,它将列出它执行的构建命令并自行运行它(你需要删除TFS Build为日志记录添加的额外内容)
之后,您可以在本地计算机上运行相同的命令,看看它是否通过。
要尝试的另一件事是为项目中的所有程序集设置“copy local”。
希望这有帮助!