2015-12-02 74 views
2

爲了在Visual Studio 2015中開發通用Windows應用程序,有沒有人注意到,每次用解決方案啓動新的VS會話時,必須將NuGet包作爲構建過程的第一步進行恢復?當沒有對包配置進行更改時,這很煩人。所以舉例來說,如果你只需要快速重啓VS並運行你的應用程序,它就必須經歷這個20秒的NuGet恢復,這似乎是不必要的。如何防止UWP項目在每個Visual Studio會話中恢復NuGet包?

是否有人知道如何達到與桌面應用程序相同的行爲(即,如果它們丟失,它只能恢復NuGet包等)?

+0

請標籤作爲回答。我沒有回答你的問題。 – user5525674

+0

我已經回答了其他答案。我已經知道關閉包完整恢復,但我不想要這個選項,我想要的行爲與WPF項目(如果包缺失時還原)相同。感謝您的輸入,儘管 – BCA

回答

3

這裏最重要的問題是:你想削弱你的開發工作嗎(通過禁用包恢復在構建過程中,如@ user5525674所提出的)與某些事情發生改變的可能性(例如,在您的源代碼管理中)並且無法正確構建?僅在Visual Studio會話的第一次構建中獲得幾秒鐘時間?

有一個原因,爲什麼它的工作原樣。你可以閱讀的NuGet V3和構建過程全documentation,但這是相對於問題的最重要的部分:

的恢復進程運行前方的構建本身,它,然後寫出一個新的文件稱爲project.lock.json。該文件包括軟件包圖以及有關恢復的軟件包的其他有用信息。 MSBuild讀取文件並將其轉換爲一組可以找到潛在引用的文件夾,然後將它們添加到內存中的項目樹中。

哪裏是這個文件下降 - 旁邊project.json

我應該看看在 - 通常是否定的,該文件包含在通常不包括在Visual Studio中的默認的.gitignore源代碼控制通過.gitignore或.tfignore。

要回顧一下:

  • 還有就是你的解決方案在沒有更多的包文件夾,下載的程序包的用戶的AppData目錄下的緩存。
  • 文件project.lock.json由恢復過程中產生並保持包的引用(如果禁用下VS選項恢復過程,這將失敗,您的構建和這個文件丟失或引用被改變。
  • 參考文件/文件夾通過的MSBuild保持在內存,一個新的會話VS意味着該樹在內存中重建,這就是需要你20秒鐘。
+1

我明白你的觀點巴特但提供給用戶的選項。用戶必須瞭解選定選項的後果,並假定選擇的選項會削弱開發過程有點接近於說用戶不知道他們在做什麼。如果這對我有利,我可以暫時使用該選項。 – user5525674

+0

我只是誇大了事實,因爲它很容易被忘記重新啓用。那時候你會失去很多時間。但是,如果用戶閱讀我的整個答案並瞭解如何和爲什麼,他可以自由地做到這一點。 – Bart

+1

我明白你的意思。謝謝。 – user5525674

1

在Visual Studio,按照工具如下菜單:

Tools -> Options -> NuGet Package Manager

然後,取消選中選項:

Automatically check for missing package during build in Visual Studio

+0

從源代碼控制獲取代碼後,這會破壞您的構建。 – Bart

+0

我明白你的觀點巴特但提供給用戶的選項。用戶必須瞭解選定選項的後果,並假定選擇的選項會削弱開發過程有點接近於說用戶不知道他們在做什麼。如果這對我有利,我可以暫時使用該選項。 – user5525674

相關問題