最近Nuget Gallery(https://github.com/NuGet/NuGetGallery)をリポジトリとしてインストールしました。理想的には、複数のフィードを作成して、私たちのプロジェクトを本番環境に展開するために使用するパッケージから他のプロジェクト(dll、契約書など)で再利用されるナゲットパッケージを区別することができます。複数のフィードを持つNuget Gallery
私はこれをNuget Galleryの複数のインスタンスを作成することで実現できると知っていますが、これは私には少し残忍で、2つのWebサイトで2つのデータベースを意味します。私はMyGetがこれを機能的に提供しているという事実にも精通していますが、購入の承認を得ることはできません。私はまた、チームシティーが独自のフィードサーバーを持っていることを認識していますが、この複数のフィードシナリオを許可しておらず、大規模な使用には十分対応していません。
理想的な展開シナリオは以下のようになります一言で言えば:
- チームシティーは、ビルドシナリオに応じて、展開パッケージまたはDLL /契約パッケージを生成します。
- teamcityは、配備パッケージをナゲットギャラリー配備フィード に公開します(例:nugetgallery.server.com/ /api/v2)。
- teamcityは、nuget gallery devのフィード にdll/contractパッケージを公開しています(nugetgallery.server.com/ dev/api/v2)。
- タコは常に展開 nugetgallery.server.com/ でパッケージを検索し/API/v2の nugetgallery.server.com/におけるパッケージの
- 開発者/チームシティーを検索DEV/API/v2の
このように私は物事をきれいに保つことができます。また、リリースパッケージを含む3番目のタイプのフィードを作成しても、それがフィードにない場合は何も配備されないことを確認できます。
私はいくつかの基本的なアプローチを見逃している可能性があるので、私が選んだこの選択肢は歓迎します。
afaik、2つのナゲットフィードには、NugetGalleryとNugetServerの2つのWebサイトが必要です。 2つのデータベースが必要ですか?私はNugetGalleryを一度も使用していませんが、NuGetServerの場合、2つのWebサイトを同じリポジトリパスに向けることができます。 –
私は、少なくとも同じ場所へのファイルを指すこともできると確信していますが、アップロードされたURLに基づいてパッケージを区別する方法を考えることができないので、 。同じウェブサイトの2つのインスタンスがないようになると思いますか? Gallery.SiteRootのキーがあります。試してみることができます。目的に合っているかどうかを確認してください。 – rjso
うーん、良い点。あなたがデータベースを共有していたらパッケージIDが衝突するので、2つのデータベースが必要です。これは私には関係なく、おそらく2つの別々のデータベースが必要であることを意味します。 –