0

バックグラウンド

私は、セキュリティのために間接インターネット アクセス (VM 経由) を利用するコンピューティング環境にいます。

私は次のマシンを持っています:

  • デスクトップ -- 私が開発しているマシン。インターネットにアクセスできません。
  • Build Server -- ローカル nuget フィードをホストします。また、インターネットにアクセスできません。
  • インターネット VM -- インターネットにアクセスできる VM。ファイルはデスクトップにコピーできます。

質問

次のことができる方法はありますか?

  • インターネット VM で、インターネットから直接 nuget パッケージ フォルダーをダウンロードします。
    • これは鍵であり、私が達成できないように見えるステップです.
  • このフォルダーをビルド サーバーの nuget ディレクトリにコピーします。
  • パッケージを参照するには、開発マシンからのビルド サーバーのフィードを使用します。

今すぐフォルダーをコピーできますが、開発環境からのみコピーできます。これには、開発環境で nuget を使用してパッケージをダウンロードする必要があります。開発環境にはインターネットがないため、これはできません。

アドバイスをよろしくお願いします!

4

2 に答える 2

1

NuGetパッケージエクスプローラーを使用して、パッケージをコピーするためにメインのNuGetフィードをダウンロードできます。

または、インターネットVMにProGetのインスタンスをインストールし、既定のフィードでパッケージキャッシュを有効にしてから、パッケージを検索/参照し、その概要ページで[Pull to ProGet]を選択して、フィードの保存場所に配置することもできます。パッケージが保存されているフィード管理ページで確認してから、必要な場所にコピーできます。

インターネットVMからUNCパス(例\\build-server\c$\ci-tool\nuget-packages)を介してビルドサーバーにアクセスできる場合は、それをフィードの保存場所として設定するだけで、パッケージをProGetにプルすると、ビルドツールのプライベートNuGetで自動的に利用できるようになります。餌。

于 2013-01-15T21:21:39.070 に答える
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);

これには、.Net45 以外のインターネット VM へのインストールは必要ありません。

于 2013-02-03T00:21:28.733 に答える