在没有网络连接的计算机上使用NuGet包

3
我有一个使用某些NuGet包的.NET Core内部网络Web应用程序。我有两台机器:我的本地计算机连接互联网,测试机器没有外部互联网连接。该应用程序在我的计算机上正常工作。 所有NuGet包都存储在本地,并由Web应用程序引用。 当我尝试在测试机器上构建应用程序时,我遇到以下错误。
 C:\Program Files\dotnet\sdk\3.0.100\Nuget.targets(123,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json

哪个进程实际上在从外部url查找服务索引?当然它无法找到,因为没有互联网。没有代理涉及,因此没有任何内容放入nuget.config.

所有的包都是存储在本地的。我该怎么解决这个问题?

谢谢。


你是否已经在你的解决方案中添加了 nuget.config 文件? - DavidG
1
当你说“运行应用程序”时,你指的是什么?看起来你正在构建和运行,这是两件不同的事情。 - DavidG
真正的问题应该是如何从其他来源获取这些软件包?NuGet必须从某个地方获取这些软件包。这可以是nuget.org,本地NuGet服务器甚至是一个文件夹,例如文件共享或本地文件夹。 - Panagiotis Kanavos
如果所有的包都是本地存储的,那么构建就不会尝试还原它们。也许有一个清理和还原步骤吗? - Panagiotis Kanavos
@DavidG,这个解决方案自动使用nuget.config吗?我在那个文件中有这个<add key="globalPackagesFolder" value=".\packages" />。所有的nuget包都存储在这个文件夹中,并且整个项目都被检入。不知道我是否需要在解决方案文件中添加任何内容? - blue piranha
显示剩余3条评论
1个回答

3
  1. 您需要一个本地文件夹来存储所有本地 NuGet packages。

  2. 然后从 nuget.org 下载您希望能够离线使用的 NuGet packages 到此文件夹中。

  3. 一旦您登录成功,搜索您需要的 packages 并单击每个左侧菜单中的“Download”链接。

  4. 成功下载所需的 .nupkg 文件到本地 repository 文件夹后,进入 Visual Studio,通过 Tools > NuGet Package Manager > Package Manager Settings 打开 NuGet 设置对话框。在设置对话框内单击“Package Sources”选项卡,然后单击左上方的“plus”图标以添加新的 package source。

  5. 输入本地 repository 的名称和源。名称可以是任何字符串,并将在 Visual Studio 中 NuGet Package Manager 中显示。

  6. 现在您已经添加了本地 package source,您可以像往常一样使用离线本地 repository,在 Console 或 Package Dialog 中选择它,无需活动 internet 连接。


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