在linux nginx服务器上发布ASP.NET核心应用程序

时间:2018-02-09 09:35:14

标签: linux asp.net-core .net-core

将ASP.NET Core应用程序发布到运行nginx的Linux服务器时,是否有必要在服务器上安装.NET Core运行时?

1 个答案:

答案 0 :(得分:1)

发布.NET Core应用程序时的一个选项是self contained deployments,其中包含一个.NET Core运行时版本。

它们(在上面的链接中)被描述为:

  

对于自包含部署,您可以部署应用程序和任何所需的第三方依赖项以及用于构建应用程序的.NET Core版本。创建SCD并不包含.NET Core在各种平台上的本机依赖关系,因此必须在应用程序运行之前存在这些依赖关系。

因此,您的目标计算机仍然需要具有.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