2014-02-13 118 views
0

我在VS 2010中有一个包含5个C#项目,1个C++项目和1个VB项目的解决方案。我的解决方案有一个解决方案文件夹“Dependencies”,用于复制具有相同名称的文件系统文件夹。解决方案文件夹中包含许多.dll文件和一些.xml文件。强制VS 2010将dll文件复制到解决方案中未被项目“使用”的输出目录

当我构建我的解决方案时,除.dll文件之外的所有文件都从该文件夹复制到我的输出目录。我已经在Visual Studio中查找了Copy Local属性,该属性被引用为here,该属性不存在该文件夹中的任何文件。

我已经看过我的解决方案中的所有项目,并且它们中没有一个实际上是直接引用该dll,我假设它是为什么它不被复制。问题在于我的一个项目引用的其中一个dll依赖于未被复制的dll。

我想这个问题的DLL添加为我的项目的参考,我得到以下错误

A reference to "dll" could not be added, Please make sure that the file is accessible, and that it is a valid assembly or COM component. 

我真的不关心,如果它是一个COM组件,或者它是有效的等等,因为我需要它输出。

我的问题是:我如何击败Visual Studio提交并强制它复制dll?

回答

3

没有必要击败任何东西,只需使用Project + Add Existing Item将该DLL添加到其中一个项目。任何将会做,但你通常会喜欢那个依赖这个DLL的人。如果你不确定你的EXE项目。目前尚不清楚它是否重要,但使用Add按钮上的箭头选择“Add as Link”,这样文件就不会被复制到项目目录中。之后,选择它并将其“复制到输出目录”属性更改为“如果更新则复制”。

请注意源代码管理,此DLL可能需要签入。所以把它放在依赖项目目录中实际上是一个好地方。

在生成后事件中使用xcopy.exe否则是复制构建系统不知道或放置在错误位置的依赖文件的一般方法。

+0

为什么我不想把它添加为链接?无论哪种方式,我添加它(和VS没有抱怨)。它已经从该依赖关系文件夹检入到源代码控制中,所以我不会预见到更多问题。我现在正在处理其他事情,但是当我可以用我的构建服务器进行完全测试时,我会回来并标记回答。 – Brandon

+0

我刚刚在我的构建服务器上进行了验证。作品。谢谢一堆 – Brandon

相关问题