vs 窗口报错
引发的异常:“System.Windows.Markup.XamlParseException”(位于 PresentationFramework.dll 中)
“初始化“CircularGauge.CircularGaugeControl”时引发了异常。”,行号为“288”,行位置为“23”。
代码位置报错
FileLoadException: 未能加载文件或程序集“CircularGauge,
PublicKeyToken=null”或它的某一个依赖项。
找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
解决方案 一
网上一大堆博主都说 版本不一致或对dll签名,都没解决我的问题。
最终在经过自己研究使用
清除联机缓存
卸载可能具有同一版本的强名称程序集的已安装应用程序的所有版本, mage.exe -cc 然后重新安装该
解决了问题
mage.exe的路径
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools
打开命令行(以管理员身份运行
)
输入以下命令
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\mage.exe" -cc
我的运行输出
C:\Users\dengd>"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\mage.exe" -cc
已清除应用程序缓存。 C:\Users\dengd>
清除前先退出程序
重新启动~~~最终我的问题没解决,如果你的解决了,恭喜你,如果也没解决继续阅读
(异常来自 HRESULT:0x80131040)
解决方案 二
最终查看csproj 引用 CircularGauge.dll的版本号居然没配置
左侧是使用下面这个软件打开分析我的运行软件的程序清单版本号,右侧是代码中的配置版本号,发现右侧没配置,所以添加了以下代码
Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL
顺便说下ildasm软件的位置
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\ildasm.exe"
最终样子
<Reference Include="CircularGauge,Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>dll\MatreialDesignDll\CircularGauge.dll</HintPath>
</Reference>
再次使用VS运行项目时记得关闭ildasm软件,否则会报进程占用无法启动的错误,
部分小伙伴问题应该已经解决,如果没解决,推荐阅读我的另一篇文章
我的问题还是没解决,问题和之前一样,所以我想是否和PublicKeyToken=null
有关系
另一篇文章《C#/WPF/.NET 第三方ddl强签名解决(xxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null)》
## 解决方案 三
使用nuGet安装官方最新包
搜索你出问题的dll更新最新版本即可