You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何生成独立可执行.exe文件而非安装程序?

生成C#独立单EXE文件的方法

针对你遇到的情况,现在的C#项目(尤其是.NET Core/.NET 5+版本)默认发布流程和旧.NET Framework不同,以下是两种可靠的生成独立单EXE的方法:

方法一:使用.NET CLI命令发布

打开命令提示符或终端,导航到你的项目根目录,执行以下命令(以Windows x64平台为例):

dotnet publish -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=true

参数说明:

  • -c Release:发布Release版本(生产环境用)
  • -r win-x64:指定目标平台为Windows 64位,可根据需求换成win-x86或win-arm64
  • --self-contained true:将.NET运行时打包进EXE,无需目标机器预装.NET环境
  • /p:PublishSingleFile=true:生成单个可执行文件
  • /p:PublishTrimmed=true:裁剪未使用的依赖代码,减小文件体积

执行完成后,单EXE文件会生成在项目目录\bin\Release\netX.x\win-x64\publish路径下。

方法二:使用Visual Studio图形界面发布

  1. 右键你的项目,选择「发布」
  2. 选择「文件夹」作为发布目标,点击「下一步」
  3. 在发布配置页面:
    • 配置文件选择「Release」
    • 目标框架选择你的项目对应的.NET版本
    • 勾选「独立」选项,目标运行时选择win-x64(或其他需要的平台)
  4. 展开「文件发布选项」,勾选「生成单个文件」,可选勾选「裁剪未使用的代码」来缩小体积
  5. 点击「发布」,完成后在指定的输出文件夹中即可找到独立单EXE。

针对旧.NET Framework项目(.NET 4.x)

如果你的项目基于旧.NET Framework,依然可以从Release目录获取EXE,但如果存在依赖DLL,可使用ILMerge工具合并为单文件:

  1. 安装ILMerge NuGet包到项目中
  2. 在项目属性的「生成事件」-「生成后事件命令行」中添加类似命令:
    "$(SolutionDir)packages\ILMerge.x.x.x\tools\ILMerge.exe" /out:"$(TargetDir)YourSingleApp.exe" "$(TargetPath)" "$(TargetDir)Dependency1.dll" "$(TargetDir)Dependency2.dll"
    
    替换版本号和依赖DLL名称,生成后即可得到合并后的单EXE。

内容的提问来源于stack exchange,提问作者Penelope

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:16:51