VS编译时使用/去除NuGet管理库
原文鏈接:VS編譯時自動下載NuGet管理的庫
之前一直使用NuGet來管理一些第三方的庫,但是每次check in代碼時候為了保證編譯通過,都需要把對應的packages check in。
比較耗費時間,特別是往github上同步代碼,而且這些庫在NuGet上都有的,是沒有必要check in上去的。
應廣大的同胞的要求,NuGet在2.0版本開始支持在編譯的時候自動同步對應的packages。不過在2.0-2.6版本,默認是沒有勾選自動下載的,2.7之后默認是勾選的。
一、設置自動下載
二、設置啟用NuGet restore功能
在solution上右鍵
最后效果如下:
設置完成后,每當編譯工程的時候,Build Task都會檢查工程里的packages.config文件里的庫是否在packages文件夾下,如果沒有則會自動下載并解壓到packages文件夾下。
在下載過程中,NuGet都會檢查對應的版本,不會自動升級的。
二、關閉自動下載
同樣,在相應的設置界面關閉即可。
若只是想使用本地的一些軟件包,而不是網絡版本,打開工程的package.config文件,刪除掉特定的行即可。
三。關閉工程中使用特定包
這次使用記事本打開工程的vcxproj文件,注銷掉與包有關的網絡方案,替換為本地包。
比如:
把<Import Project="..\..\..\NugetPackages\gflags.2.1.2.1\build\native\gflags.props" Condition="Exists('..\..\..\NugetPackages\gflags.2.1.2.1\build\native\gflags.props')" />
刪除,
貼錯了
把 <Import Project="..\..\..\NugetPackages\LevelDB-vc120.1.2.0.0\build\native\LevelDB-vc120.targets" Condition="Exists('..\..\..\NugetPackages\LevelDB-vc120.1.2.0.0\build\native\LevelDB-vc120.targets')" />??
刪除,
把<Error Condition="!Exists('..\..\..\NugetPackages\LevelDB-vc120.1.2.0.0\build\native\LevelDB-vc120.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\NugetPackages\LevelDB-vc120.1.2.0.0\build\native\LevelDB-vc120.targets'))" />
刪除,
即可去除到所有使用Nuget的包含,然后替換為本地包。
總結
以上是生活随笔為你收集整理的VS编译时使用/去除NuGet管理库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 灰猴是什么意思
- 下一篇: java的优先队列注意事项