【问题标题】:Can I host .net Core Runtime in a Framework app?我可以在框架应用程序中托管 .net Core Runtime 吗?
【发布时间】:2017-05-19 12:34:38
【问题描述】:

我正在尝试在 .net Core 运行时之上运行 .net Core 应用程序,但在 Windows 服务中。

我没有尝试在完整的 .net 框架上运行该库(它目前无法正常工作,因为它是 ASP.net Core 2.0 Preview 1),我的下一个最佳尝试是使用 @ 987654321@.

我真的只是想找到一种方法将控制台应用程序包装在 Windows 服务的启动/停止方法和身份验证方案中,但是因为该控制台应用程序恰好是 .net 核心,我想知道我是否可以托管运行时本身(例如,一些 P/Invoking)。我知道 C++ 应用程序可以托管完整的运行时,但我还没有看到 .net Core 是否存在这种机制。

有人试过吗?如果纯 C# 方法行不通,也许有一些 C++/CLI 魔法?

【问题讨论】:

    标签: .net .net-core


    【解决方案1】:

    托管运行时是一项相当大的工作,因为您需要处理本机库和托管库的解析逻辑。

    您可以:

    1. 使用Process.Start(..) 将 .net 核心应用程序作为子进程启动 - 例如以 dll 作为参数运行 dotnet.exe 进程。
    2. 将 .net 核心控制台应用程序转换为 Windows 服务。由于 ServiceBase 在 .NET Core 上尚不可用,因此我在必要的 Windows API 调用之上创建了一个包装 API:https://github.com/dasMulli/dotnet-win32-service(请按照自述文件获取更详细的说明)

    【讨论】:

    • 谢谢,这个包装看起来像我想要的。我会在周末试一试,让你知道!
    • 这样做,欢迎反馈和 GitHub 问题。 (最常见的问题:windows 服务总是以C:\Windows\system32 启动,并且无法加载像 appSettings.json 这样的配置)
    猜你喜欢
    • 1970-01-01
    • 2021-08-04
    • 2018-05-28
    • 1970-01-01
    • 2021-12-13
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多