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

.NET 9.0应用宿主可执行文件的app.manifest版本未更新问题咨询

.NET 9.0应用宿主可执行文件的app.manifest版本未更新问题咨询

这确实是.NET 9.0(包括之前多个版本)的预期行为,并不是你配置出错了哦。

先给你理清楚背后的逻辑:

  • 你提到的“app host”可执行文件是.NET SDK提供的通用引导程序,它的核心作用是加载并启动你的WPF应用程序集(也就是那个带有正确版本manifest的DLL),本身并不是你的业务代码编译产物。它的默认版本就是1.0.0.0,不会自动继承你项目里自定义manifest的版本信息。
  • 而你的WPF项目生成的DLL里的manifest,是属于你业务程序集的元数据,两者是完全独立的实体,所以版本不同步是正常的默认状态。

如果你希望app host的版本和程序集版本保持一致,可以通过以下两种方式配置:

1. 让app host自动继承程序集版本

在你的WPF项目文件(.csproj)里添加如下配置,让app host直接复用你设置的程序集版本:

<PropertyGroup>
  <!-- 让应用宿主版本和程序集版本同步 -->
  <ApplicationHostVersion>$(AssemblyVersion)</ApplicationHostVersion>
</PropertyGroup>

只要你在项目属性里(或者CI构建变量中)设置了AssemblyVersion,编译时app host的版本就会自动同步过去。

2. 为app host指定自定义manifest

如果需要对app host的manifest做更精细化的控制,可以单独创建一个manifest文件(比如命名为AppHost.manifest),在其中设置好你需要的版本号,然后在项目文件里关联这个文件:

<PropertyGroup>
  <ApplicationHostManifest>$(ProjectDir)AppHost.manifest</ApplicationHostManifest>
</PropertyGroup>

这种方式适合需要给app host添加额外manifest配置(比如系统兼容性声明)的场景,记得要手动保持这个manifest和你程序集manifest的版本一致。

另外如果是CI构建场景,只需要把版本号通过构建变量传递给AssemblyVersion和ApplicationHostVersion,就能实现全自动化的版本同步啦。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 07:33:05