你的问题:
不,应用程序中没有嵌入依赖项(.NET 中没有静态链接)。
是的,当您发布(自包含)时,依赖项将作为单独的文件添加。
如果您的应用程序是 .NET-Core 应用程序,您确实不需要需要安装 .NET-Core 框架。你也不需要 Mono。
您可以为每个平台进行独立部署:
Windows-x86-32:
dotnet restore -r win-x86
dotnet build -r win-x86
dotnet publish -f netcoreapp2.0 -c Release -r win-x86
Windows-x86-64:
dotnet restore -r win-x64
dotnet build -r win-x64
dotnet publish -f netcoreapp2.0 -c Release -r win-x64
Linux-x86-32:.NET-Core 不支持
Linux-x86-64:
dotnet restore -r linux-x64
dotnet build -r linux-x64
dotnet publish -f netcoreapp2.0 -c Release -r linux-x64
Linux ARM (Android/ChromeOS)
dotnet restore -r linux-arm
dotnet build -r linux-arm
dotnet publish -f netcoreapp2.0 -c Release -r linux-arm
Linux-arm-64:.NET-Core 不支持
这会添加所有依赖项,包括 .NET-Core 运行时库。
如果使用的 DLL 引用了 native-dll(它作为嵌入式资源提供),但没有提供必要的 C-Runtime-libraries(例如,当 native-dll/.so 被动态链接时,您仍然会遇到问题 - 例如就像在 SkiaSharp 中一样)。
另外,.NET-Core 可以使用 shared-framework 运行,这意味着部署规模更小,但必须安装 shared-framework-version。
- 由于 Android 是 linux - 而且您没有在 x86-32 处理器或 ARM-64 处理器上运行的 Android,.NET-Core 应该与 Android 兼容。我从未测试过这个前提。可能会带来错误。 ARM 支持是粗略的。
但是,我不清楚您想在 Android 上使用 .NET Core 做什么。
由于 .NET 没有实现任何 Android-UI 接口。
Xamarin-Forms 可能支持带有 .NET-Core 的 Android-UI - 它当然支持单声道。但是,您可以在 Android 上运行 web/other-server 或控制台应用程序。
见CoreDroid