【问题标题】:error NU1101: Unable to find package ''. No packages exist with this id in source(s): Microsoft Visual Studio Offline Packages, nuget.org错误 NU1101:找不到包“”。源中不存在具有此 ID 的包:Microsoft Visual Studio 脱机包,nuget.org
【发布时间】:2020-03-29 00:39:26
【问题描述】:

我管理一个通过 Jenkins 持续集成的应用程序。持续集成通常通过单独的 Jenkins 服务器进行,​​但我试图模仿编辑源代码、提交源代码控制然后在我的家用 PC 上构建 Jenkins 的过程。这通常发生在我的办公室,但我现在在家工作,还没有设置 VPN,所以我正试图在家里继续开发。

在家里,Jenkins 服务器是我的 PC,localhost:8080。 Git 是我们的源代码控制管理器。该应用程序的解决方案在我的 PC 上的 Visual Studio 中构建良好。这取决于存储在我的 C: 驱动器上的文件夹中的一些 nuget 包。包括解决方案在内的源代码也存储在我的 C: 驱动器上的一个文件夹中。在 Visual Studio 的 NuGet 包管理器中,这些是我的设置。

当 Jenkins 在构建期间尝试恢复包时,我收到以下错误消息。

Jenkins 找不到的 NuGet 包是我的 C: 驱动器上文件夹中的包。 Jenkins 似乎不知道我的 Visual Studio NuGet 包管理器设置和我的 C: 驱动 NuGet 包文件夹,并试图在“C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\ ”。这很令人困惑,因为 Jenkins 正在尝试构建在我的 PC 上运行良好的相同解决方案。

我最初的想法是需要将 Jenkins 构建作业配置为“查看”我 C: 驱动器上的 NuGet 包文件夹,但我不确定如何配置 Jenkins 以“查看”该文件夹。由于我的解决方案,NuGet 包文件夹和 Jenkins 位于同一台机器上,我认为 Jenkins 在我的 C: 驱动器上“看到” NuGet 包文件夹不会有任何问题。

我在这里缺少什么?感谢您的帮助。

【问题讨论】:

  • 表示找不到包。

标签: c# visual-studio jenkins nuget


【解决方案1】:

Jenkins 不知道我的 Visual Studio NuGet 包管理器设置

您已经为自己配置了 NuGet 选项,但 Jenkins 服务默认以不同的用户(即“SYSTEM”)运行。

解决方案:

将 Jenkins 服务配置为在您当前的用户帐户下运行或专门为 Jenkins 创建一个新帐户。后者通常在组织环境中完成。您将以 Jenkins 用户身份登录并调整 NuGet 选项,以便 Jenkins 服务可以看到它们。

【讨论】:

  • 感谢 @zett42 引导我朝着正确的方向前进。我去了 Jenkins,然后是 Credentials,然后我在 System 下添加了一个新域,即我桌面的域名。这解决了 Jenkins 找不到 NuGet 包文件夹的问题。欣赏!
【解决方案2】:

我遇到了这个问题。确保在 NuGet.config 中有官方的 NuGet 包参考。为此,请按照以下步骤操作

  1. 打开您的 Visual Studio
  2. 转到工具 -> Nuget 包管理器 -> 包管理器设置
  3. 将打开一个设置菜单,在 Nuget 包管理器下选择包源
  4. 查找名称为 Nuget 且源地址为 https://api.nuget.org/v3/index.json 的包,如果没有添加并点击确定
  5. 清理您的解决方案并重新构建它。它应该可以解决您的问题

我在 Visual Studio 2019 专业版中尝试过这个练习

【讨论】:

  • 这对我有用,谢谢
猜你喜欢
  • 2020-05-19
  • 2019-11-02
  • 2022-01-22
  • 2019-09-30
  • 1970-01-01
  • 2019-08-31
  • 2020-01-20
  • 2022-01-05
  • 2015-11-01
相关资源
最近更新 更多