C#/WPF/.NET 第三方ddl强签名解决(xxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null)
2023-09-11 14:19:28 时间
报错
FileLoadException:
未能加载文件或程序集“CircularGauge, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”
或它的某一个依赖项。需要强名称程序集。 (异常来自 HRESULT:0x80131044)
原因,报错信息里面有 CircularGauge,这是项目里面引用的一个第三dll。
报错原因
项目使用了签名,这个dll没有使用签名,就像报错信息描述的
PublicKeyToken=null
解决办法
- 给这个dll 进行签名
准备步骤
- 找到dll的位置
- 找到项目签名文件的位置
- 使用系统自带的工具进行签名
实施过程
VS中鼠标右键dll查看属性,复制路径备用
C:\CustomData\PC\Aowising-wincc\wincc\dll\CircularGauge.dll
打开命令窗(以管理员身份运行)
进行反编译签名,再编译为dll
第一步:输入反编译指令
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe" C:\CustomData\PC\Aowising-wincc\wincc\dll\CircularGauge.dll /output=D:\DapperExtensions.StrongName.il
反编译工具:"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe"
目标dll位置:C:\CustomData\PC\Aowising-wincc\wincc\dll\CircularGauge.dll
(请替换为你自己的)
输出路径:/output=D:\
输出文件名:DapperExtensions.StrongName.il
第二步:输入签名命令
"C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe" D:\DapperExtensions.StrongName.il /dll /out=D:\DapperExtensions.StrongName.dll /key=C:\CustomData\PC\Aowising-wincc\key.snk /resource=D:\DapperExtensions.StrongName.res
签名工具:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe"
签名文件:D:\DapperExtensions.StrongName.il
签名后生成文件类型:/dll
签名后输出路径:/out=D:\
前后后输出文件名称:DapperExtensions.StrongName.dll
签名过程使用的签名密钥:/key=C:\CustomData\PC\Aowising-wincc\key.snk
(请替换为你自己的)
待签名的文件资源:/resource=D:\DapperExtensions.StrongName.res
第三步将生成的dll改名为CircularGauge.dll
第四步 替换未签名的项目CircularGauge.dll
先删除引用,再删除未签名的dll,再使用已签名的dll
项目成功运行
相关文章
- How To Bind a Combobox to a Dictionary in WPF C#
- c# 中内部类的简单介绍 C#内部类
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
- C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点
- 利用反射快速给Model实体赋值 使用 Task 简化异步编程 Guid ToString 格式知多少?(GUID 格式) Parallel Programming-实现并行操作的流水线(生产者、消费者) c# 无损高质量压缩图片代码 8种主要排序算法的C#实现 (一) 8种主要排序算法的C#实现 (二)
- C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
- 深入理解MVC C#+HtmlAgilityPack+Dapper走一波爬虫 StackExchange.Redis 二次封装 C# WPF 用MediaElement控件实现视频循环播放 net 异步与同步
- 装饰者模式的学习(c#) EF SaveChanges() 报错(转载) C# 四舍五入 保留两位小数(转载) DataGridView样式生成器使用说明 MSSQL如何将查询结果拼接成字符串 快递查询 C# 通过smtp直接发送邮件 C# 带参访问接口,WebClient方式 C# 发送手机短信 文件 日志 写入 与读取
- 【卷土重来之C#学习笔记】(二)c#编程概述
- [.NET]c#.net程序中使用ffmpeg.exe来处理视频并生成上传视频的截图
- 【C#/WPF】图像数据格式转换时,透明度丢失的问题
- c#代码规则,C#程序中元素的命名规范