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

.NET6控制台程序默认生成apphost.exe,如何自定义可执行文件名?

.NET 6控制台项目构建后obj目录出现apphost.exe的问题解答

1. "apphost"名称的来源

在.NET Core及后续版本(包括.NET 5/6)的部署机制里,apphost.exe是原生引导程序的默认命名。和.NET Framework直接生成包含IL代码的可执行文件不同,.NET 6采用分层部署模式:

  • 项目编译后会产出一个和项目同名的.dll文件,里面是实际业务代码
  • apphost.exe是轻量的原生可执行文件,作用是加载.NET运行时环境,再启动你的.dll程序集
  • 构建过程中,这个引导程序会先临时生成在obj目录作为中间产物;默认发布时它会被重命名为项目名称,但在构建的中间阶段(obj目录下)会保持apphost.exe这个默认名

2. 如何指定正确的exe名称

如果需要让obj目录或最终输出的可执行文件名称改为项目名称,可通过以下配置实现:

方法一:配置AssemblyName和TargetName

检查并修改你的.csproj文件,确保包含以下属性:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <!-- 设置你想要的可执行文件名称 -->
    <AssemblyName>YourProjectName</AssemblyName>
    <!-- 让输出文件名与AssemblyName保持一致 -->
    <TargetName>$(AssemblyName)</TargetName>
  </PropertyGroup>
</Project>
  • OutputType必须设为Exe,确保项目是控制台可执行类型
  • TargetName会控制构建全流程中生成的可执行文件名称,包括obj目录下的中间产物

方法二:直接指定AppHost名称

如果只想单独修改引导程序的名称,可添加AppHostExeName属性:

<PropertyGroup>
  <AppHostExeName>YourProjectName</AppHostExeName>
</PropertyGroup>

这个属性会直接覆盖默认的apphost.exe命名,不管是obj目录的中间文件还是最终bin目录的输出文件,都会用你指定的名称

额外提示

  • obj目录是构建缓存目录,一般不需要关注其中的文件命名,最终可执行文件会生成在bin目录下(默认路径是bin/Debug/net6.0/YourProjectName.exe)
  • 如果之前修改属性后没生效,建议先清理项目(右键项目→清理)再重新构建,避免缓存干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 21:12:19