.net core部署
可以为 .NET Core 应用程序创建两种部署:
依赖框架的部署。 顾名思义,依赖框架的部署 (FDD) 依赖目标系统上存在共享系统级版本的 .NET Core。 由于已存在 .NET Core,因此应用在 .NET Core 安装程序间也是可移植的。 应用仅包含其自己的代码和任何位于 .NET Core 库外的第三方依赖项。 FDD 包含可通过在命令行中使用 dotnet 实用程序启动的 .dll 文件。 例如,dotnet app.dll 就可以运行一个名为 app 的应用程序。
独立部署。 与 FDD 不同,独立部署 (SCD) 不依赖目标系统上存在的共享组件。 所有组件(包括 .NET Core 库和 .NET Core 运行时)都包含在应用程序中,并且独立于其他 .NET Core 应用程序。 SCD 包括一个可执行文件(如 Windows 平台上名为 app 的应用程序的 app.exe),它是特定于平台的 .NET Core 主机的重命名版本,还包括一个 …dll 文件(如 app.dll),而它是实际的应用程序。
依赖框架的部署
创建应用的调试版本。
使用 dotnet 生成命令生成应用程序,或使用 dotnet 运行命令生成并运行应用程序。
部署应用。
完成程序调试和测试后,使用下列命令创建部署:
dotnet publish -f netcoreapp2.1 -c Release
这将创建一个应用的发行版(而不是调试版)。 生成的文件位于名为“发布”的目录中,该目录位于项目的 bin 目录的子目录中。
运行你的应用
安装成功后,用户可通过使用 dotnet 命令或提供应用程序文件名(如 dotnet fdd.dll)来执行应用程序。
除应用程序二进制文件外,安装程序还应捆绑共享框架安装程序,或在安装应用程序的过程中将其作为先决条件进行检查。 安装共享框架需要管理员/根访问权限。
独立部署
定义应用的目标平台。
在 csproj 文件(该文件用于定义应用的目标平台)的 部分中创建 标记,然后指定每个目标平台的运行时标识符 (RID)。 请注意,还需要添加分号来分隔 RID。
<PropertyGroup>
<RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>
</PropertyGroup>
确定是否要使用全球化固定模式。
特别是如果应用面向 Linux,则可以通过利用全球化固定模式来减小部署的总规模。 全球化固定模式适用于不具有全局意识且可以使用固定区域性的格式约定、大小写约定以及字符串比较和排序顺序的应用程序。
要启用固定模式,右键单击“解决方案资源管理器”中的项目(不是解决方案),然后选择“编辑 SCD.csproj”或“编辑 SCD.vbproj”。 然后将以下突出显示的行添加到文件中:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
</ItemGroup>
</Project>
调试并测试程序后,为应用的每个目标平台创建要与应用一起部署的文件。
同时对两个目标平台使用 dotnet publish 命令,如下所示:
dotnet publish -c Release -r win10-x64
dotnet publish -c Release -r osx.10.11-x64