2013-06-12 60 views
2

我有一個使用NuGet包LZ4.NET的解決方案。Nuget包含dll內容不會在項目構建過程中被複制

該軟件包將dll存儲在內容文件夾中,該文件夾被複制到目標項目根目錄中。

這已簽入源控制(GIT),但是在項目中的DLL被排除在外。

目前包文件夾簽入,同時具有所有必要的dll文件lib和內容目錄。

但是,當克隆新的存儲庫時,構建項目不會將內容複製到項目中,並且Visual Studio會提供dll丟失的錯誤(因爲它們已包含在項目中,但從源代碼管理中排除)。

我怎樣才能讓nuget在每次構建時複製內容? 或者我應該只在項目中檢查dll?

更新

我已經啓用NuGet包恢復。但似乎by design Nuget does not support restoring of content files。如果是這樣,似乎我必須檢查項目中的dll。

但DLL是由.NET Framework版本,即net35,net40,net45組織。如果我檢入dll,那麼它將被鎖定到我檢入的.Net框架版本,而不是依賴Nuget爲我選擇。

回答

1

當一個包被安裝到一個項目,在的NuGet實際上執行這些操作,

  1. 從源代碼下載包文件;
  2. 將軟件包安裝到所謂的packages文件夾中,默認爲$(SolutionDir)\ p​​ackages;
  3. 安裝軟件包到項目,它由加引用的DLL,複製內容文件到項目目錄等

當一個包被恢復的,只有前兩個步驟被執行。這就是爲什麼你的項目目錄中的DLL不會被「恢復」。

現在唯一的解決方案是檢查項目目錄中的DLL。

相關問題