2017-01-26 63 views
0

假設我已經從存儲庫中提取了全新的解決方案,所以我只獲取源代碼+ packages.config,但不包裝它們自己。如何成功恢復整個解決方案的nuget包?

當我在VS2015中打開這個解決方案並檢查參考文獻時,那些來自nugets的內容被打破(黃色標誌)。參考屬性頁可以是這樣的:

enter image description here

很公平。我在解決方案上點擊RMB,然後選擇「管理Nuget包解決方案」,然後選擇「所有存儲庫」,然後單擊「還原」來還原包。

所有nuget軟件包都被恢復,我可以在「已安裝」列表中看到它們,但引用仍然被打破。屬性頁面不會改變。

要真正恢復軟件包,我必須檢查「強制卸載」,然後手動卸載並安裝軟件包。只有這樣才能恢復軟件包。

當然這很耗時,所以如何有效和成功地恢復軟件包只需點擊一下?

+0

您的項目引用是否被破壞?像在卸載/安裝修復項目文件中的提示路徑?如果是這樣,那麼正常還原將無法解決問題,因爲它不會修復提示路徑。您需要使用軟件包管理器控制檯並使用重新安裝軟件包的'Update-Package -reinstall'命令。只需點擊一下就無法做到這一點。 –

+0

@MattWard,從某種意義上說,它們被破壞了,因爲這只是一個源代碼,沒有包。所以參考文獻指向無處。到目前爲止,我注意到如果在打開解決方案之前創建「包」目錄,「恢復」將按照解決方案的第一個項目工作,但剩下的問題仍然存在(如上所述)。 – astrowalker

+0

@MattWard,你可以發表你的評論作爲答案?看起來這是VS問題,一旦它「看到」引用被破壞,它就試圖保持它的方式。我測試過這樣的步驟 - 甚至在VS中打開解決方案之前,我在命令行'nuget restore my_solution.sln'中執行,然後我在VS中打開了解決方案。有效! – astrowalker

回答

0

由於@馬特沃德尖端我通過第一(字面)上運行的命令行並在它執行nuget restore my_solutions.sln且僅在Visual Studio中打開溶液解決了這個問題。

+0

很高興知道您已解決此問題。你可以將它標記爲答案:) astrowalker。 –

+0

@ JackZhai-MSFT,我也很高興,是的,我會接受它,但是明天之前不允許。 – astrowalker

相關問題