2014-02-13 86 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

相關問題