.NET Core 项目的多种打包发布方式

.NET Core 作为跨平台的技术方案,提供了多种打包、发布应用程序的方式。方便开发者实现一次开发,到处运行。 本文以 .NET Core 中 WebApi 类型的项目为例,演示不同的发布方法。

包含运行时的打包方式

所谓包含运行时的方式,指的是在发布包(文件)中已经包含了所有应用运行时需要的资源,特别是 .NET Core 的相关运行时库,第三方库等。 这种方式的优点是: 1. 发布简单,目标机器不需要提前安装 .NET Core 的运行时, 直接复制整个安装包文件即可; 2. 依赖库版本各类,因为每个应用自带依赖库和运行时,一个应用变更版本不会影响到另一个应用。 当然,这种方式也有缺点,具体表现在: 1. 发布包比较大,因为每次发布都要带上所以的运行时和第三方库; 2. 对于一个应用已经发布的版本,升级 .NET Core 的运行时比较麻烦。

要构建自包含的包,只需要简单的在项目目录中执行以下命令即可:

1
dotnet publish -r win-x64

-r 参数指明应用运行的目标平台,可以是: windows, linux 或 macos

命令执行完成后,可以看到所有应用运行需要的文件都被放置在 “bin\Debug\netcoreapp3.1\win-x64” 目录中了。 只是用 dotnet 项目模板建立的程序就有 170M 大小。 当然要发布很简单,只要复制整个文件夹到目标机器,然后执行 <项目名称>.exe 文件即可。不用安装任何 .NET Core 运行库或是 IIS。

不包含运行时的打包方式

这种方式只打包项目中的代码和资源,方法也很简单,直接在项目中执行:

1
dotnet publish

命令执行完后,应用相关文件被放置在 “bin\Debug\netcoreap3.1\publish” 目录中, 因为不含运行时,同样的项目只有 238k。 当然,发布的时候需要在目标机器上已经安装好对应版本的 .NET Core 运行时。

本文标题:.NET Core 项目的多种打包发布方式

文章作者:Morning Star

发布时间:2020年06月15日 - 16:06

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/dotnet/dotnet-core-deploy-methods/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。