使用NuGet进行全局包安装

5
NuGet是否支持像NPM和Composer一样进行全局安装包?如果是,我该如何操作?另外,在我的Visual Studio项目中,如何引用全局安装的包?

对于Windows系统,在安装任何NuGet包时,实际上是安装在%userprofile%\.nuget\packages文件夹中。有关详细信息,请参阅此文档 - LoLance
@LanceLi-MSFT: 谢谢。这回答了两个问题中的一个。看文章似乎 nuget 的“全局”安装并不像 npm 和 composer 包那样是真正的全局,因为我无法在 VS 项目中引用这些包而不从互联网上下载它们。或者说是这样吗? - dotNET
是的,如果软件包在在线源上并且您以前从未下载过它,则必须从互联网上下载一个软件包。在项目A中下载软件包后,当您使用项目B打开新解决方案时,如果仍然需要该软件包,则现在无需第二次下载。但正如您所说,是的,第一次确实需要下载它。 - LoLance
如果你所说的“引用”是指调用一个名为xx.exe而不是引用一个名为xx.dll的文件,你可以查看Martin的博客。希望能对你有所帮助。 - LoLance
1个回答

6

从@Lance的提示中学到了一些东西,我检查了%userprofile%\.nuget\packages文件夹,并发现它包含了我过去下载的所有软件包。不幸的是,Visual Studio(我使用的是Community 2019)不允许您将这些软件包安装到新项目中。NuGet Package Manager UI中的Browse页面仅显示来自nuget.org的在线结果。

但是我找到了另一个线索。在Visual Studio 工具 > 选项 > NuGet Package Manager > Package Sources 中,您可以添加自定义源。因此,我继续将我的缓存文件夹添加为备用源。

enter image description here

请注意,还有一个单独的“机器范围包源”条目,无法修改。我检查了那个文件夹,里面大多数是微软自己的包(我在那里找到的一个例外是NewtonSoft.json)。我不知道这个文件夹与nuget缓存文件夹有什么区别,以及如何将包下载到此文件夹中。
到目前为止,包管理器现在在我从下拉列表中选择此来源时显示所有先前从缓存中下载的包(来源下拉列表位于右上角)。然后,我可以从本地源选择一个包并进行安装,而不是从互联网下载它。
希望这能帮助到某些人。

嗨朋友,感谢您的分享,请将您的回复标记为答案,这将有助于其他社区成员更轻松地搜索到这些有用的信息,这只是一个提醒 :) - LoLance
@LanceLi-MSFT:感谢提醒。SO要求我等待另外4个小时才能将自己的帖子标记为答案。那时候我会去做的。感谢您的提醒。 - dotNET
@LanceLi-MSFT:标记为答案。不要忘记在此页面上投票支持你认为最佳的答案。哈哈... - dotNET

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接