将 ASP.NET Core 应用程序发布到运行 nginx 的 Linux 服务器时,是否需要在服务器上安装 .NET Core 运行时?
请您参考如下方法:
发布 .NET Core 应用程序时的选项之一是 self contained deployments其中包括 .NET Core 运行时的一个版本。
它们(在上面的链接中)被描述为:
For a self-contained deployment, you deploy your app and any required third-party dependencies along with the version of .NET Core that you used to build the app. Creating an SCD doesn't include the native dependencies of .NET Core on various platforms, so these must be present before the app runs.
因此,您的目标计算机仍然需要拥有 .NET Core 所依赖的库,但完全可以发布您的应用程序而不在目标服务器上安装 .NET Core 运行时。
创建 SCD,您需要对 csproj 进行一些更改
<PropertyGroup>
<RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>
</PropertyGroup>
上面的内容将通知 MSBuild 您想要以 64 位 Windows 10 和 OSX 11.10 为目标。
然后,您可以通过运行以下命令为这些运行平台之一创建应用程序的发布版本:
dotnet publish -c Release -r win10-x64
dotnet publish -c Release -r osx.10.11-x64
(第一行为 Windows 10 64 位创建 SCD,第二行为 OSX 10.11 64 位执行相同操作。
来源:Self-contained deployment without third-party dependencies