2012-05-14 19 views
1

因此,我有一个包含6个项目和一个Web项目的解决方案。一些在webproject中引用的dll(即Aspose.dll和Microsoft.Practices.ObjectBuilder2.dll)不要将项目文件中的copy local设置为true,但是当我在本地机器上打开解决方案并查看属性的参考文献已将复制本地设置为真。MSBuild在多台机器上表现不同

我们有几个生成机器,在某些MSBuild上使用dll并将其输出到bin目录中,并在另一个上将它视为copy local = false。

当我在构建机器上打开失败的解决方案时,复制本地到真实设置现在被删除并设置为false,导致构建失败。在所有其他机器上,它显示为真实。

有什么建议可能会导致这种情况?其他

+1

好吧,我找到了这种行为的原因。基本上,这取决于DLL在GAC中被注册,因为很清楚[这里](http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html)解释 解决方案建议是为所有需要的dll设置复制本地为真。对于包含很多其他dll的引用项目,这是很多配置。 – Tom

+0

你需要提交你的评论以上 - 和URL作为答案,这有助于我 - 并解决我的问题。甚至可以添加,然后切换。 –

回答

1

一个技巧是确保你不从的MSBuild文件的当前目录中引用的东西 - 即不做“../../Xyz”,而是停飞对像一个‘已知的’目录“$(MSBuildProjectDirectory)/../../ XYZ” - 当他们在各种情况下的(建立代理),他们应该仍然做正确的事运行的方式。

(其他众所周知的属性:http://msdn.microsoft.com/en-us/library/ms164309.aspx

相关问题