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

MSI安装.Net4.6.2 WPF应用后启动提示找不到Microsoft.Xaml.Behaviors程序集

分发自研WPF应用启动报Microsoft.Xaml.Behaviors找不到的解决方案

问题场景

基于.NET Framework 4.6.2开发的WPF应用,引用版本为1.1.39的Microsoft.Xaml.Behaviors.Wpf NuGet包,Debug调试模式下运行完全正常;构建MSI安装包分发后,启动应用始终弹出如下错误:

System.IO.FileNotFoundException: Die Datei oder Assembly "Microsoft.Xaml.Behaviors,
Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit
davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

打包前已确认对应.dll文件存放在输出目录的正确路径下。

排查解决步骤

  • 检查程序集引用的复制本地配置
    不要仅手动拷贝dll到输出目录,大部分MSI打包工具(包括Visual Studio自带安装项目、WiX等)通过扫描项目引用依赖生成打包文件清单,手动放入输出目录的文件不会被自动纳入打包范围。找到项目引用列表中的Microsoft.Xaml.Behaviors,右键打开属性页,将复制本地选项设为True,重新生成项目后再执行打包流程。
  • 修复程序集版本绑定重定向
    报错提示查找的是1.1.0.0版本的程序集,但实际引用的NuGet包版本为1.1.39,说明项目存在依赖项硬引用了旧版本程序集,绑定重定向配置缺失或未生效。
    1. 打开项目根目录下的app.config文件,确认存在如下绑定重定向配置:
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.Xaml.Behaviors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-1.1.39.0" newVersion="1.1.39.0" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    
    1. 打开项目属性-应用程序页签,勾选下方的自动生成绑定重定向选项,重新生成项目后确认输出目录下的[对应应用名].exe.config文件中包含上述配置,再重新打包。
  • 校验打包的dll文件正确性
    确认纳入MSI包的Microsoft.Xaml.Behaviors.dll版本为1.1.39、公钥令牌与报错提示的b03f5f7f11d50a3a一致,且dll的编译架构(x86/x64/Any CPU)和项目生成目标架构匹配,不要误用其他来源重编译、不匹配架构的同名dll。
  • 清理测试环境残留
    如果测试机上之前安装过该应用的旧版本,先彻底卸载应用,手动删除安装目录残留文件,同时检查全局程序集缓存(GAC)中是否存在旧版本的Microsoft.Xaml.Behaviors,存在则手动移除,避免程序启动时优先加载GAC中的旧版本导致找不到文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:21:48