次の方法で共有


NuGet.Server

NuGet.Server は.NET Foundation によって提供されるパッケージであり、IIS を実行する任意のサーバーでパッケージ フィードをホストできる ASP.NET アプリケーションを作成します。 簡単に言うと、NuGet.Server はサーバー上のフォルダーを HTTP (S) (具体的には OData) 経由で使用できるようにします。 簡単に設定でき、単純なシナリオに最適です。

  1. Visual Studio で空の ASP.NET Web アプリケーションを作成し、それに NuGet.Server パッケージを追加します。
    • Visual Studio 2022 を使用している場合は、.NET Framework 開発ツールを追加する必要があります。 これは、 新しい ASP.NET Web アプリケーション (.NET Framework) プロジェクトを作成できるようにするために必要です。
  2. アプリケーションで Packages フォルダーを構成し、パッケージを追加します。
  3. 適切なサーバーにアプリケーションをデプロイします。

次のセクションでは、C# を使用して、このプロセスについて詳しく説明します。

NuGet.Server についてさらに質問がある場合は、 https://github.com/nuget/NuGetGallery/issuesで問題を作成します。

NuGet.Server を使用して ASP.NET Web アプリケーションを作成してデプロイする

  1. Visual Studio で、[ ファイル] > [新しい > プロジェクト] を選択し、"ASP.NET Web アプリケーション (.NET Framework)" を検索し、 C# の一致するテンプレートを選択します。

    .NET Framework Web プロジェクト テンプレートを選択する

  2. Framework を ".NET Framework 4.6" に設定します。

    新しいプロジェクトのターゲット フレームワークの設定

  3. アプリケーションに NuGet.Server 以外 の適切な名前を付け、[OK] を選択し、次のダイアログで のテンプレートを選択し、[ OK] を選択します

    空の Web プロジェクトを選択する

  4. プロジェクトを右クリックし、[ NuGet パッケージの管理] を選択します。

  5. パッケージ マネージャー UI で、[ 参照 ] タブを選択し、.NET Framework 4.6 を対象としている場合は、NuGet.Server パッケージの最新バージョンを検索してインストールします。 ( Install-Package NuGet.Serverを使用してパッケージ マネージャー コンソールからインストールすることもできます)。メッセージが表示されたら、ライセンス条項に同意します。

    NuGet.Server パッケージのインストール

  6. NuGet.Server をインストールすると、空の Web アプリケーションがパッケージ ソースに変換されます。 他のさまざまなパッケージをインストールし、アプリケーションに Packages フォルダーを作成し、追加の設定を含むように web.config を変更します (詳細については、そのファイルのコメントを参照してください)。

    Important

    NuGet.Server パッケージがそのファイルに対する変更を完了した後、 web.config を慎重に検査します。 NuGet.Server では、既存の要素を上書きするのではなく、重複する要素を作成できます。 これらの重複により、後でプロジェクトを実行しようとすると"内部サーバー エラー" が発生します。 たとえば、NuGet.Server をインストールする前に web.config<compilation debug="true" targetFramework="4.5.2" /> が含まれている場合、パッケージは上書きせず、2 つ目の <compilation debug="true" targetFramework="4.6" />を挿入します。 その場合は、古いフレームワーク バージョンの要素を削除します。

  7. Visual Studio でローカルでサイトを実行します ( デバッグ > デバッグなしで開始 するか、Ctrl + F5 キーを押します)。 ホーム ページには、次に示すようにパッケージ フィードの URL が表示されます。 エラーが発生した場合は、前に説明したように、 web.config で重複する要素がないか慎重に調べます。

    NuGet.Server を使用するアプリケーションの既定のホーム ページ

  8. アプリケーションを初めて実行すると、NuGet.Server によって Packages フォルダーが再構築され、各パッケージのフォルダーが格納されます。 これは、パフォーマンスを向上させるために NuGet 3.3 で導入された ローカル ストレージ レイアウト と一致します。 さらにパッケージを追加する場合は、この構造に従い続けます。

  9. ローカル展開をテストしたら、必要に応じて他の内部サイトまたは外部サイトにアプリケーションを展開します。

  10. http://<domain>にデプロイすると、パッケージ ソースに使用する URL がhttp://<domain>/nugetされます。

外部からのフィードへのパッケージの追加

NuGet.Server サイトが実行されたら、で API キー値を設定した場合はweb.configを使用してパッケージを追加できます。

NuGet.Server パッケージをインストールした後、 web.config には空の appSetting/apiKey 値が含まれます。

<appSettings>
    <add key="apiKey" value="" />
</appSettings>

apiKeyを省略するか空白にすると、フィードへのパッケージのプッシュは無効になります。

この機能を有効にするには、apiKeyを値 (理想的には強力なパスワード) に設定し、appSettings/requireApiKeyの値を持つ true というキーを追加します。

<appSettings>
    <!-- Sets whether an API Key is required to push/delete packages -->
    <add key="requireApiKey" value="true" />

    <!-- Set a shared password (for all users) to push/delete packages -->
    <add key="apiKey" value="" />
</appSettings>

サーバーが既にセキュリティで保護されているか、API キーが不要な場合 (たとえば、ローカル チーム ネットワークでプライベート サーバーを使用する場合)、 requireApiKeyfalse に設定できます。 その後、サーバーにアクセスできるすべてのユーザーがパッケージをプッシュできます。

NuGet.Server 3.0.0 以降では、パッケージをプッシュするための URL が http://<domain>/nugetに変更されました。 3.0.0 リリースより前は、プッシュ URL が http://<domain>/api/v2/packageされました。

NuGet 3.2.1 以降では、このレガシ URL /api/v2/packageは、スタートアップ構成の /nuget オプションを使用して既定でenableLegacyPushRoute: trueに加えて有効になります (既定ではNuGetODataConfig.cs)。 この機能は、同じプロジェクトで複数のフィードがホストされている場合は機能しないことに注意してください。

フィードからのパッケージの削除

NuGet.Server では、コメントに API キーを含める場合、 nuget delete コマンドによってリポジトリからパッケージが削除されます。

代わりにパッケージを一覧から削除するように動作を変更する場合 (パッケージの復元に使用できるようにしておく)、enableDelistingweb.config キーを true に変更します。

パッケージ フォルダーの構成

NuGet.Server 1.5 以降では、appSettings/packagesPathweb.config値を使用してパッケージ フォルダーをカスタマイズできます。

<appSettings>
    <!-- Set the value here to specify your custom packages folder. -->
    <add key="packagesPath" value="C:\MyPackages" />
</appSettings>

packagesPath には、絶対パスまたは仮想パスを指定できます。

packagesPathを省略するか空白のままにすると、packages フォルダーが既定の~/Packagesになります。

Web アプリを発行するときにパッケージを使用できるようにする

アプリケーションをサーバーに発行するときにフィードでパッケージを使用できるようにするには、Visual Studio の .nupkg フォルダーに各Packages ファイルを追加し、それぞれのビルド アクションコンテンツに設定し、出力ディレクトリにコピーして常にコピーします。

プロジェクト内の Packages フォルダーへのパッケージのコピー

リリース ノート

NuGet.Server のリリース ノートは、 GitHub リリース ページで入手できます。 これには、バグ修正と追加される新機能に関する詳細が含まれます。

NuGet.Server のサポート

NuGet.Server の使用に関するその他のヘルプについては、 https://github.com/nuget/NuGetGallery/issuesで問題を作成してください。