2017-05-19 184 views
0

我正在嘗試在.net Core Run上運行.net Core應用程序,但在Windows服務中。我不想在完整的.net框架上運行庫(它現在無法工作,因爲它是ASP.net Core 2.0預覽版1),我下一個最好的嘗試是使用System.Diagnostics.Process我可以在Framework應用程序中託管.net Core Runtime嗎?

我真的只是想找到一種方法來包裝控制檯應用程序在Windows服務的啓動/停止方法和身份驗證方案,但因爲該控制檯應用程序恰好是.net核心,我不知道我是否可以只是託管運行時本身(例如,一些P /調用)。我知道C++應用程序可以託管整個運行時,但是我還沒有看到.net Core是否存在這樣的機制。

有沒有人試過?也許一些C++/CLI的魔力,如果一個純粹的C#方法不起作用?

回答

3

承載運行時間是一項相當大的工作,因爲您需要處理本機庫和託管庫的解析邏輯。

您可以執行:

  1. 啓動使用Process.Start(..)的.NET應用程序的核心作爲子過程 - 例如以dll作爲參數運行dotnet.exe進程。
  2. 將.net核心控制檯應用程序轉換爲Windows服務。由於ServiceBase不可用.NET的核心(還),我創建了一個封裝API進行必要的Windows API調用的頂部:https://github.com/dasMulli/dotnet-win32-service(遵循更詳細的說明自述)
+0

謝謝你,那包裝外觀就像我所追求的一樣。我會在週末嘗試一下,讓你知道! – Henry

+0

這樣做,反饋和GitHub問題歡迎。 (最常見的問題:Windows服務總是從'C:\ Windows \ system32'開始,並且無法像appSettings.json那樣加載配置) –

相關問題