purepelmen
purepelmen

Reputation: 109

Embedding Modern .NET Mono in a native application?

I'm trying do what is described in the title by building .NET Runtime repo, but only the Mono version of it. I don't know how embedding the old Mono in https://github.com/mono/mono differs from embedding the Mono in https://github.com/dotnet/runtime/tree/main/src/mono .

What I first did is building the runtime with this on Linux:

./build.sh mono --configuration release --ninja /p:DisableCrossgen=true

I know I need Mono API includes to load .NET assemblies. I found a folder in the build artifacts: artifacts/bin/mono/linux.x64.Release/. There is the include folder, okay. But what I also need? enter image description here

As I undertstand those components are optional. So what is required? I need to place the libcoreclr.so and System.Private.CoreLib.dll near the executable? Or there's more files I need to find somewhere in the build artifacts folder?

Also another question: so the modern Mono is just a slimmer version of the CoreCLR, but communication between my native executable and the runtime happens via Mono API? Is this understanding correct?

Also another question: there's no static library of the CoreCLR, I have to link it dynamically? There's really no way to statically link it?

EDIT: I'm building this runtime downloaded from the tag v8.0.4.

Upvotes: 0

Views: 125

Answers (0)

Related Questions