dotnet应用发布(编译打包)


简介

.NET 通过 dotnet publish命令,编译应用程序、读取 project 文件的依赖项,生成文件集并发布到目录。

官方文档中,应用发布的相关内容,在 部署模型 章节下面。请看 应用程序发布概述

打包发布(交叉编译)

dotnet publish -c Release
  • -c|--configuration: 定义生成配置。 大多数项目的默认配置为 Debug
  • -r|--runtime: 发布针对给定运行时的应用程序。参数为运行时标识符(RID),如果使用此选项,则还要使用 --self-contained--no-self-contained
  • -a|--arch: 指定目标体系结构。是设置运行时标识符(RID)的简写语法。例如,在 win-x64 计算机上,指定 --arch x86 会将 RID 设置为 win-x86。 如果使用此选项,请不要使用 -r|--runtime 选项。
  • --os: 指定目标操作系统 (OS)。是设置运行时标识符(RID)的简写语法。例如,在 win-x64 计算机上,指定 --os linux 会将 RID 设置为 linux-x64。 如果使用此选项,请不要使用 -r|--runtime 选项

单文件部署

单文件部署 通过将所有依赖应用程序文件捆绑到一个二进制文件中,大大减少了项目部署和分发的文件数量。 单文件部署 可用于 依赖框架的部署模型独立应用程序

独立应用程序中单个文件的大小很大,因为它包含运行时和框架库。可通过 发布剪裁 来减小与剪裁兼容的应用程序的总大小。

单文件发布示例文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <PublishSingleFile>true</PublishSingleFile>
    <SelfContained>true</SelfContained>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
  </PropertyGroup>

</Project>

剪裁独立部署

剪裁自包含部署 模型是自包含单文件独立部署模型的专用版本,该模型优化以减小部署大小。因为自包含的应用程序,.NET 运行时和运行时库与应用程序和第三方程序集捆绑在一起,独立应用程序中单个文件的尺寸很大。

  • 剪裁只能用于独立发布的应用程序。

<PublishTrimmed>true</PublishTrimmed> 添加到项目文件

<PropertyGroup>
    <PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>

然后使用 dotnet publish 命令或 Visual Studio 发布应用。

发布后的pdb文件

PDB 全称Program Database。程序数据库(.pdb)文件(也称为符号文件),将项目源代码中的标识符和语句映射到已编译应用中的相应标识符和说明. 这些映射文件将调试器链接到源代码,以进行调试。
这个文件会在我们调试的时候被使用到。如果不是开发阶段便于调试,正常情况下 不应绑定到的发布应用 中。


C#发布之后的pdb文件是啥 https://www.cnblogs.com/sunny3158/p/16733537.html

### 将控制台应用程序打包为可执行文件 (EXE) 对于不同编程语言编写的控制台应用程序,打包成 EXE 文件的方法有所不同。以下是针对 C# 和 Python 编程语言的具体方法。 #### 对于 C# 当完成 C# 控制台程序的编写并希望将其打包为一个独立的 `.exe` 文件时,可以利用 Visual Studio 或者命令行工具来进行操作。一旦构建过程结束并且显示发布成功的信息,在项目的 `bin/Release/netX.X/publish`(具体路径取决于目标框架版本) 下能够发现生成好的 exe 文件[^1]。这意味着可以直接分发此文件供他人使用而无需额外安装环境。 另外一种方式是通过命令行来启动由 C# 构建的应用程序。如果项目已经编译成了 DLL 形式,则可以在命令提示符窗口中进入相应的目录并通过输入如下指令来运行它: ```bash start dotnet JieXi2Test.dll ``` 这里假设 `JieXi2Test` 是你的项目名称[^3]。 #### 对于 Python Python 用户则可以选择 PyInstaller 工具来实现这一目的。PyInstaller 提供了两种主要模式用于创建 Windows 平台上使用的 EXE 文件:一是默认情况下会生成包含所有必要的库和资源在内的整个文件夹;二是借助参数 `--onefile` 来制作单一的、自解压式的 EXE 文件[^2]。 为了简化部署流程以及减少最终用户的麻烦程度,通常推荐采用第二种方案即单文件形式。这使得用户只需下载并双击即可立即体验软件功能,而不必关心其内部结构或依赖关系。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值