- 在开发.Net Core应用程序时,.NET依赖项和DLL文件被嵌入应用程序中。这是否意味着我不需要在客户端PC上安装.NET依赖项?
- 如果我为Linux开发一个.Net Core控制台应用程序,是否需要在Linux PC(客户端)上安装Mono?
- .Net Core应用程序是否与Android兼容?
关于你的问题:
不,依赖项并没有嵌入应用程序中(.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引用了本地DLL(作为嵌入式资源提供),但未提供必要的C运行时库(例如,当本地DLL/.so是动态链接时,例如SkiaSharp),仍可能出现问题。
此外,.NET Core可以使用共享框架运行,这意味着部署大小更小,但必须安装共享框架版本。
然而,我不清楚您想在Android上使用.NET Core做什么。由于.NET不实现任何Android UI接口。Xamarin.Forms可能会支持使用.NET Core的Android-UI - 它肯定支持使用mono。但您可以在Android上运行Web/其他服务器或控制台应用程序。
请参见CoreDroid