4

ローカルのNuGetギャラリーを実行して、ビルドシステムへの依存関係を提供したいと思います。

web.configでAzureの詳細を要求されていることに気付きましたが、コードはストレージバックエンドとして「FileSystem」を選択できることを示唆しているようです。

私の質問は次のとおりです。

  1. 「ファイルシステム」を選択した場合、ターゲットフォルダを構成するにはどうすればよいですか?
  2. 代わりに、ストレージエンジンをSQL Serverの社内インスタンスに向けることはできますか?

現在NuGetServerで使用しているのはファイルシステムであり、非常に遅いため、ファイルシステムの使用を避けようとしています。いくつかの開発者は、成功したすべてのビルドをパックしてプッシュすることを好むため、スケーラビリティが重要です。

ここでの回答が他の人にも役立つことを願っています。背景として、独自のNuGetギャラリーを設定するための優れたリンクがあります。残念ながら、作成者は実際のパッケージストレージに関するすべての詳細を省略しています:https ://github.com/NuGet/NuGetGallery/wiki/Hosting-the-NuGet-Gallery-Locally-in-IIS

4

1 に答える 1

2

ファイルシステムパッケージストアを設定するには:

<appSettings>
  <add key="Gallery:PackageStoreType" value="FileSystem" />
  <add key="Gallery:FileStorageDirectory" value="C:\Path\To\Packages" />
</appSettings>

別のSQLServerを指すには:

<connectionStrings>
  <add name="NuGetGallery" connectionString="Data Source=SQLSERVERNAME;Initial Catalog=NuGetGallery;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
</connectionStrings>

編集:パッケージストアとしてSQLServerをサポート

パッケージをBLOBとしてSQLServerに保存する場合は、コードにいくつかの変更を加える必要があります。

まず、という名前のクラスを作成してSqlServerFileStorageService実装しIFileStorageServiceます。このインターフェースにはいくつかの方法があります。重要なのはGetFile()SaveFile()です。を組み合わせるfolderNamefileName、データベーステーブルで使用できる一意のキーが作成されます。

同じ接続文字列NuGetGalleryを使用するか、データアクセス用に新しい接続文字列を追加できます。

PackageStoreType次に、と呼ばれる列挙型にアイテムを追加しますSqlServer

PackageStoreType.SqlServerContainerBinding.csで、にバインドするためのケースを追加しますSqlServerFileStorageService

これで、NuGetギャラリーがを作成しSqlServerFileStorageService、すべての取得と保存でクラスを使用してBLOBをSQLServerに格納します。

ところで:私はこれをコードの大まかな見方に基づいています。余分なステップが1つか2つあるかもしれませんが、これらはあなたが焦点を合わせる必要がある主要な領域のように見えます。

お役に立てば幸いです。

于 2012-07-24T15:06:56.180 に答える