2015-11-03 47 views
3

我想在構建服務器上用MSBuild命令行構建我的解決方案。 但是,MSBuild不會將任何dll複製到bin文件夾,因此後續目標失敗。MSBuild不會直接將引用的dll複製到bin文件夾

我的解決方案由幾個只包含一個項目的項目組成。該項目在應該在之前構建的相同解決方案中引用其他項目。

項目文件中的所有參考都設置爲<Private>true</Private>

這裏是我的MSBuild命令:

Msbuild solution.sln /m /p:BuildInParallel=true /p:VersionNumber=1.2.3.4 
"/t:Rebuild" /p:Configuration=Release /p:WebProjectOutputDir=publish\ 
"/p:GitVersion=abcdef (abcdef)" /p:OutDir=publish\bin\ /p:RunOctoPack=true 

當我建立在Visual Studio(2012年或2013年)的bin文件夾中創建獲取所有所需的DLL複製到bin文件夾中的項目。 Visual Studio將dll複製到bin文件夾後,MSBuild命令將工作,直到我更改了任何引用的dll。

我讀了一些關於間接引用不被複制的帖子,但對我而言,即使是直接引用也不會被複制。

我也嘗試調用像ResolveReferences這樣的目標,但總是得到target ResolveReferences does not exist in the project solution.sln的錯誤。

有誰知道我在做什麼錯?謝謝您的幫助。

+0

試試這些:http://stackoverflow.com/questions/1132243/msbuild-doesnt-copy-參考-dlls-if-using-project-dependencies-in-solution http://stackoverflow.com/questions/14322391/msbuild-to-copy-dynamically-generated-files-as-part-of-project-dependency – BarrieK

+0

謝謝但第一個答案處理間接引用,但對我來說,直接的引用不會被複制,因此構建失敗。第二個答案涉及引用項目的內容文件,這對我來說不是問題。 –

+0

你有機會解決這個問題嗎?我有類似的 – Artyom

回答

0

嘗試去解決方案資源管理器中的我的項目,然後單擊發布選項卡。隨後,您將看到所有.dll文件和其他與您的程序相關的文件的列表。您可能需要單擊左下角的全部顯示才能顯示所有文件。這裏選擇丟失的文件,並在發佈欄中選擇Include,在Download Group中選擇Required,並且Hash列選擇include

相關問題