2017-04-21 38 views
0

NPM:包管理器控制檯主機版本3.4.4.1321nuget用project.json恢復:Nuget Package Manager和Nuget.EXE應該以同樣的方式恢復嗎?

nuget.exe:的NuGet版本:3.5.0.1938

的Visual Studio:2015年企業

試圖重新建造一個.nupkg文件箱根據我是否使用Visual Studio/NPM或命令行/ nuget.exe獲取不同的結果。

我可以通過CL還原/構建獲得.dll文件輸出到bin,但contentFiles文件夾中的.xml文件只能用nuget.exe(命令行恢復和構建)寫入bin,而不能與NPM(Visual Studio恢復和構建)

不管我使用的恢復方法是什麼,我不應該得到相同的輸出到bin文件夾和project.lock.json嗎?在檢查project.lock.json之後,我注意到命令行還原會產生比Visual Studio還原多的輸出。這就是爲什麼我在BIN中獲得不同的輸出。

+1

您是如何將.nupkg文件還原到bin文件夾的? repositoryPath是否設置爲bin文件夾?據我所知,NuGet Restore只能恢復軟件包目錄下的文件(\ packages文件夾),.dll文件在恢復後不會複製到bin文件夾。你的意思是你有建立你的項目,然後讓.dll文件到垃圾桶?不確定此問題的詳細步驟,請向我們分享更多詳細步驟給我們,以便我們可以重現此問題? –

+0

我的意思是我做了恢復,恢復更新project.lock.json,然後我根據restore/project.lock.json結果進行構建。我期待Visual Studio恢復/構建和命令行恢復/構建產生相同的結果:他們不。我可以發送.nupkg來嘗試,如果你想,並有環境來測試。 Visual Studio恢復/構建和命令行恢復/構建產生與上面我使用的版本不同的結果。 – user5855178

回答

0

我發現周圍的工作,直到微軟修復這個缺陷:

在Visual Studio 2015年工具菜單

  1. 選擇選項

  2. 選擇的NuGet節點

  3. 取消選中這兩個選項:

允許的NuGet下載缺失的軟件包

自動檢查缺失的軟件包在構建

  • 在您的EXE項目屬性選擇生成事件左標籤
  • 編輯預-build事件添加此語句
  • C:\的NuGet \ nuget.exe恢復$(SolutionPath)

    個假設:與

    結果v 3.5是我測試的版本:nuget.exe複製到上面列出的目錄

    這模擬的自動恢復功能,視覺工作室一樣。我發現它實際上更好,因爲你沒有得到那個乏味的模式窗口彈出。

    試試看!你會得到相同的結果,但更好!

    +0

    感謝您在這裏分享您的解決方案,您可以將其標記爲答案,這樣可以幫助其他社區成員獲得相同的問題。 –

    0

    解決方法是簡單地確保您安裝了最新的NuGet visual studio擴展 - 對於VS 2015,這是3.5 VSIX。您可以直接從NuGet's download site下載它。