将dotnet core (.NET Core)嵌入到Windows/Linux本地应用程序中

7

有没有可能将dotnet core (.NET Core)环境嵌入本地进程中?

我的用例是一个现有的游戏服务器,我想提供使用C#在Windows和Linux上的.NET Core扩展游戏的可能性。

奖励问题:是否也会有类似于“老派” .NET中的AppDomain概念可用?

3个回答

1

是的,这绝对是可能的。

我找到了这个带有例子的文档: .NET Core Hosting Tutorial

如果链接不再有效,请在网上搜索“hosting .NET Core”。

关于AppDomains... 我猜不行。 如果您使用CoreClrHost.h可以为默认AppDomain提供ID,但它似乎是唯一的AppDomain。要进行隔离,您可以使用单独的进程。也许AssemblyLoadContext类也可以帮助您。


0

AppDomain在dotnet core中不再存在。AppDomain API的部分功能将被保留,但与您所说的功能直接相关的内容将不再支持。我认为您无法将dotnet core应用程序嵌入到本地进程中,但是您可以在本地进程中启动一个dotnet core进程。


0

我已经测试了嵌入式GUI或窗口系统,你可以将其嵌入到静态可执行文件中。首先使用Alpine或Void-Linux(通过共享文件夹的qemu guest)。更多信息请参见https://github.com/dotnet/runtimelab/issues/2202

抱歉,我会在工作后改进我的答案。好的,我将向您解释如何嵌入GUI或游戏层框架,例如glfw或sdl2/3,但我使用musl-gcc和dotnet应用程序使用本地aot。我希望您有关于Alpine或Void-Linux的经验。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接