私のシミュレーション アプリケーションでは、プラグインを格納するためにカスタム NuGet リポジトリを使用したいと考えています。つまり、プラグイン アセンブリは NuGet パッケージとしてパッケージ化されます。アプリケーションは、ホスト アプリケーションとデータ アプリケーションで構成されます。ホスト アプリケーションは UI を (WPF UI または CAD アプリケーションへのプラグインとして) 提供し、ユーザーとのすべてのやり取りを処理しますが、シミュレーション計算は実行せず、シミュレーション データも保存しません。データ アプリケーションはシミュレーション計算を実行しますが、ユーザーがそれを直接操作する方法はありません。すべての入力は、ホストとの接続を介して提供されます (両方が同じマシン上にある場合は名前付きパイプを介して、またはそれらが同じマシン上にある場合は TCP を介して)。別のマシンで)。このアプローチにより、複数のデータ アプリケーションを備えた単一のホストを介した分散コンピューティングが可能になります。
アプリケーションにプラグインをインストールする機能を提供するために、次のような Windows サービスを作成しています。
- 使用可能なプラグイン、それらの接続、およびそれらが含まれているパッケージを説明するシリアル化された情報をホスト アプリケーションに提供します。
- 利用可能なパッケージに関する情報とその説明、依存関係などをホスト アプリケーションに提供します。
- データ アプリケーションのプラグインを含む NuGet パッケージを "ダウンロード" するための接続ポイントを提供します。
現在の問題は、Windows サービスで実行されている NuGet サーバーを取得する方法です。NuGet.Serverについては知っていますが、それには ASP.NET MVC (したがって IIS) が必要であり、大規模なグーグル検索では、IIS の外部で NuGet フィードを実行できるコードが思いつきませんでした。
だから私の質問は、この問題にどのようにアプローチするのですか? 私の Windows サービスが NuGet リポジトリとして機能できるようにする最も適切な方法は何でしょうか? Windows サービス内で Nuget.Server を実行できますか、それとも別の方法がありますか?