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

如何在Windows应用打包项目中嵌入.NET 8.0 Runtime?

解决方案:将.NET 8.0 Runtime嵌入Windows应用打包包

核心配置调整

你之前尝试的WindowsAppSDKSelfContained仅针对Windows App SDK框架,对于.NET Runtime的嵌入,需重点调整WPF项目的自包含设置,配合打包项目配置:

  1. 修改WPF项目的.csproj
    启用自包含部署,添加以下属性:

    <PropertyGroup>
      <SelfContained>true</SelfContained>
      <RuntimeIdentifier>win-x64</RuntimeIdentifier> <!-- 根据目标架构选择:win-x86、win-arm64等 -->
    </PropertyGroup>
    

    SelfContained是控制.NET Runtime是否被包含的核心开关,必须在WPF项目中设置。

  2. 调整Windows应用打包项目的.wapproj
    确保打包项目正确引用自包含的WPF输出,添加配置:

    <PropertyGroup>
      <IncludeFrameworkInPackage>true</IncludeFrameworkInPackage>
      <RuntimeIdentifier>win-x64</RuntimeIdentifier> <!-- 必须与WPF项目的RuntimeIdentifier完全一致 -->
    </PropertyGroup>
    

    该配置会让打包工具将WPF项目生成的自包含Runtime文件纳入最终的Appx/MSIX包。

移除无效自定义Target

你之前添加的_RemoveFrameworkReferences Target会移除Windows App Runtime依赖,干扰正常打包流程,直接删除该代码段即可。

验证打包结果

重新生成解决方案并打包后:

  • 检查输出的Appx/MSIX包内部,应包含Runtime文件夹,其中有.NET 8.0运行时文件。
  • 在未安装.NET 8 Runtime的测试机器上安装包,确认应用可正常启动。

常见注意事项

  • WPF项目与打包项目的RuntimeIdentifier必须完全匹配,否则Runtime无法正确嵌入。
  • WPF项目无需设置WindowsAppSDKSelfContained,该属性适用于WinUI 3等Windows App SDK原生应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:52:37