簡體   English   中英

如何以適當的方式將nuget包添加到package.config?

[英]How to add a nuget package to the package.config the proper way?

對於我的C#項目,我正在維護一個packages.config ,其中包括項目所需的所有依賴項。 一段時間以來,我一直在使用常規文本編輯器手動復制粘貼條目,檢查在NuGet網站上找到的版本號,依此類推。 要在簽出時恢復軟件包,我使用nuget -o nuget-packages install packages.config ,到目前為止效果很好(我在非Windows系統上使用Xamarin Studio,因此沒有VS可用)。

我只是意識到,在文本編輯器中弄亂packages.config並不是預期的方式。 我從npm和bower那里知道npm install --save-dev <pkg-xy>將會完成工作,並將軟件包版本寫回到配置中。 在NuGet.exe中有與此等效的功能嗎?

從命令行不支持。 您將必須手動編輯packages.config文件,或者編寫實用程序來為您完成此工作,或者使用此功能擴展NuGet.exe。

NuGet中沒有等效於NPM的npm install -save

當前,當您要將新的NuGet軟件包安裝到項目中時,自動更新packages.config文件的唯一方法是使用IDE(例如Visual Studio或Xamarin Studio)並實際安裝該軟件包。 從命令行使用NuGet.exe時,沒有選擇在安裝新軟件包時向/packages.config文件中添加條目或從中刪除條目的選項。

NuGet.exe確實具有更新命令,該命令會將軟件包更新為最新版本。 盡管這將更新您的packages.config文件,但也會通過添加NuGet軟件包所需的任何程序集引用來更新您的項目文件。

您確實不應該編輯packages.config 程序包還原無法執行您認為的操作。 它僅下載packages.config中列出的所有缺少的軟件包

你可能會認為這是你想要的,但包還原添加引用到您的項目。 它也不會執行軟件包創建者打算執行的其他任何操作,例如運行install.ps1腳本。

安裝軟件包時,NuGet會處理所有這些問題,因此您的項目文件已添加了引用,內容等。這就是您將提交給源代碼管理的packages.config文件。 您可以忽略實際的packages文件夾,因此不必提交大型二進制文件。

當您打開解決方案並進行構建時,NuGet將看到軟件包丟失,並像您已簽入它們一樣下載它們。實際的“安裝”已經完成(並提交)。 這就是Package Restore的全部功能:不多也不少。

如果您使用的是Xamarin Studio,則可以按照以下說明安裝NuGet:

https://github.com/mrward/monodevelop-nuget-addin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM