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

如何用Windows应用打包项目打包框架依赖型.NET 6 WPF应用

为WAP打包的.NET 6 WPF应用启用框架依赖发布模式

默认情况下Windows Application Packaging Project(WAP)引用.NET 6+桌面项目时,会强制使用独立部署模式打包完整.NET运行时,这就是中性架构包体积超过60MB的原因,按以下步骤调整即可切换到框架依赖模式,最简应用的安装包体积可压缩到5MB以内,且会在用户缺少对应运行时时自动引导安装。

1. 修改WPF主项目的部署配置

右键你的WPF项目App1,选择「编辑项目文件」,在第一个<PropertyGroup>节点内添加以下配置:

<!-- 明确指定框架依赖模式,不随应用打包.NET运行时 -->
<SelfContained>false</SelfContained>
<!-- 关闭单文件发布,避免WAP打包时错误嵌入运行时文件 -->
<PublishSingleFile>false</PublishSingleFile>
<IncludeNativeLibrariesForSelfExtract>false</IncludeNativeLibrariesForSelfExtract>
<!-- 如需生成支持多架构的中性包,保留以下配置;单架构包替换为对应RID如win-x64即可 -->
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>

注意:以上配置必须加在WPF主项目中,加在WAP项目里不会生效,WAP打包时会自动读取引用项目的部署参数。

2. 配置包清单声明运行时依赖

这一步是为了让系统在安装/启动应用时自动检测用户设备是否已安装.NET 6桌面运行时,缺失时自动引导下载:

  1. 打开WAP项目中的Package.appxmanifest文件,切换到代码视图
  2. 在<Dependencies>节点下添加.NET 6桌面运行时的包依赖声明,示例如下:
<Dependencies>
  <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.22621.0" />
  <!-- 新增以下.NET 6运行时依赖声明 -->
  <PackageDependency 
    Name="Microsoft.NETCore.DesktopRuntime.6.0" 
    MinVersion="6.0.0.0" 
    Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
</Dependencies>

3. 发布时校验配置避免被覆盖

走WAP项目的「创建应用包」发布流程时,走到「选择配置和平台」步骤后点击「配置」按钮,在弹出的项目配置列表中找到App1项目,确认以下参数:

  • 部署模式(Deployment mode)选择Framework-dependent
  • 取消勾选「生成单个文件(Produce single file)」
  • 目标运行时按需选择架构,中性包选择对应多架构配置即可

常见问题处理

  • 配置后打包体积仍然偏大:先清理整个解决方案,手动删除所有项目下的bin、obj文件夹后重新生成,旧的独立部署缓存经常会导致配置不生效
  • 启动时提示缺少运行时:检查Package.appxmanifest中的PackageDependency配置是否正确,MinVersion不要高于你应用实际依赖的.NET 6小版本号
  • 中性包体积没有明显下降:确认主项目中没有误将<SelfContained>设为true,框架依赖模式下不需要打包多架构运行时,中性包体积不会随支持架构数线性增长

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:09:10