2017-05-19 6 views
0

.netコアランタイムの上ではなく、Windowsサービスで.netコアアプリケーションを実行しようとしています。.NET Frameworkランタイムをフレームワークアプリケーションでホストすることはできますか?

私は完全な.netフレームワークでライブラリを実行しようとしていません(それはASP.net Core 2.0プレビュー1以来、とにかく動作しません)。 System.Diagnostics.Process

私は実際には、Windowsサービスの起動/停止の方法と認証方式でコンソールアプリケーションをラップする方法を見つけようとしていますが、そのコンソールアプリケーションは.netコアであるため、ランタイムそのものをホストします(例:P/Invoking)。私は、C++アプリケーションが完全なランタイムをホストできることを知っていますが、.netコアのようなメカニズムが存在するかどうかはわかりません。

誰もがそれを試みましたか?純粋なC#のアプローチがうまくいかないのであれば、C++/CLIの魔法のようなものでしょうか?

答えて

3

ネイティブライブラリとマネージライブラリの解決ロジックを処理する必要があるため、ランタイムのホスティングはかなりの労力を要します。

あなたは行うことができ、次のいずれか

  1. 起動Process.Start(..)を使用してサブプロセスとしての.NETコアアプリ - 例えばdllを引数としてdotnet.exeプロセスを実行します。
  2. .netコアコンソールアプリをWindowsサービスに変えます。 .NET Core(まだ)ではServiceBaseが使用できないため、必要なWindows APIの呼び出しの上にラッパーAPIを作成しました。詳細についてはreadmeを参照してください。
+0

ありがとうございます。私が何をしたかのように。私は週末にそれを試してみましょう、あなたに知らせる! – Henry

+0

これを行うと、フィードバックとGitHubの問題は大歓迎です。 (最も頻繁に起こる問題:Windowsサービスは常に 'C:\ Windows \ system32'で始まり、appSettings.jsonのような設定を読み込めません) –

関連する問題