0

背景

我在一个使用间接 Internet 访问(通过 VM)来确保安全的计算环境中。

我有以下机器:

  • 桌面——我开发的机器;不能访问网络。
  • 构建服务器——托管本地 nuget 提要。也无法上网。
  • Internet VM -- 可以访问 Internet 的 VM。文件可以复制到我的桌面。

问题

有什么办法可以做到以下几点:

  • 在我的 Internet VM 上,直接从 Internet 下载一个 nuget 包文件夹
    • 这是关键,也是我似乎无法完成的步骤。
  • 将此文件夹复制到我的构建服务器的 nuget 目录
  • 使用来自我的开发机器的构建服务器的提要来引用包。

我现在可以复制该文件夹,但只能从我的开发环境中复制,这需要我在我的开发环境中使用 nuget 来下载包——我不能这样做,因为开发环境没有互联网。

提前感谢您的任何建议!

4

2 回答 2

1

您可以尝试使用 Nuget.Core API 编写脚本。这样做的快速步骤是: 1. 创建一个项目并在其中安装 Nuget.Core nuget 包。2. 这将添加对 Nuget.Core 程序集的引用。3. 编写一个快速方法,从指定的提要下载包:

     static string feedUrl = "https://nuget.org/api/v2";
     string packagedir = string.Empty;
     PackageManager manager = null;

        IPackageRepository repo = PackageRepositoryFactory.Default.CreateRepository(feedUrl) as IPackageRepository;
        packagedir = Path.Combine(xxx);
        manager = new PackageManager(repo, packagedir);
       manager.InstallPackage(packageId);

这不需要在您的 Internet VM 上进行任何安装,除了 .Net45

于 2013-02-03T00:21:28.733 回答
1

您可以使用NuGet 包资源管理器下载主要 NuGet 源的包,以便将它们复制过来。

或者,您可以在 Internet VM 上安装ProGet实例,在默认提要上启用包缓存,然后搜索/浏览包并在其概述页面上选择“拉到 ProGet”以将其放入提要的存储位置。您可以在存储包的源管理页面上验证,然后将它们复制到您想要的任何位置。

如果您可以通过 UNC 路径(例如\\build-server\c$\ci-tool\nuget-packages)从 Internet 虚拟机访问您的构建服务器,您可以将其设置为提要存储位置,然后在您将包拉到 ProGet 时,它会自动在您的构建工具的私有 NuGet 中可用喂养。

于 2013-01-15T21:21:39.070 回答