我在VS 2010中有一个包含5个C#项目,1个C ++项目和1个VB项目的解决方案。我的解决方案有一个解决方案文件夹“Dependencies”,它复制一个具有相同名称的文件系统文件夹。解决方案文件夹中包含许多.dll文件和一些.xml文件。
当我构建我的解决方案时,除了一个.dll文件之外的所有文件都从该文件夹复制到我的输出目录。我在Visual Studio中查看了引用here的Copy Local
属性的文件,该文件夹中的任何文件都没有该属性。
我已经查看了我的解决方案中的所有项目,并且它们实际上都没有直接引用该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?
答案 0 :(得分:3)
不需要打败任何东西,只需将DLL添加到Project + Add Existing Item的其中一个项目中。任何人都会这样做,但你通常喜欢那个依赖于这个DLL的人。如果你不确定你的EXE项目。目前尚不清楚它是否重要,但使用“添加”按钮上的箭头选择“添加为链接”,这样文件就不会被复制到项目目录中。然后,选择它并将其Copy to Output Directory属性更改为“Copy if Newer”。
请密切关注源代码控制,可能需要签入此DLL。因此,在依赖项目目录中拥有它实际上是一个好地方。
在Post-Build事件中使用xcopy.exe
是另一种复制构建系统不知道或放在错误位置的相关文件的一般方法。