惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
Security Latest
Security Latest
P
Privacy International News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AI
AI
Cisco Talos Blog
Cisco Talos Blog
K
Kaspersky official blog
S
Secure Thoughts
PCI Perspectives
PCI Perspectives
Simon Willison's Weblog
Simon Willison's Weblog
D
DataBreaches.Net
GbyAI
GbyAI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
罗磊的独立博客
V
Visual Studio Blog
aimingoo的专栏
aimingoo的专栏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
V
V2EX
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tenable Blog
T
Threat Research - Cisco Blogs
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
S
Security @ Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Project Zero
Project Zero
The GitHub Blog
The GitHub Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
Lohrmann on Cybersecurity
F
Full Disclosure
H
Help Net Security
博客园 - Franky
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
Engineering at Meta
Engineering at Meta
A
Arctic Wolf
O
OpenAI News
S
Securelist

博客园 - 匡匡

Vue 父子组件通信方式 Vue: 组件扩展 WebClient 指定出口 IP IIS8 下 JS, CSS 等静态文件出现 500 错误 使用 ffmpeg 转换 mov 视频 2020-01-08 工作日记:无题 .Net Core 程序集管理说明(加载) .NET CORE 动态加载 DLL 的问题 ASP.NET 后台 COOKIE 的设置 使用 sql server 默认跟踪分析执行的 SQL 语句 Nginx深入详解之upstream分配方式 使用 HttpWebRequest 类做 POST 请求没有应反 webpack 里的 import, exports 实现原理 使用 pdf.js 查看发票时,显示不了台头和印章的解决办法 Flex 布局里 input 宽度最小 150px 的问题, 浏览器 BUG? 使用像素单位设置 EXCEL 列宽或行高 sweetalert 快速显示两个提示, 第二个显示不出的问题 加权轮询和加权随机算法 在 Docker 中部署 ASP.NET CORE 应用
使用 ildasm 和 ilasm 修改程序集的的引用信息
匡匡 · 2020-03-13 · via 博客园 - 匡匡

 最近升级了一个项目, 把框架从 .NET2.0 升级到 .NET4.0, 把相关的 DLL 也更新了, 如 Newtonsoft.Json。

今天客户有测试说有一个功能出错了, 提示找不到  Newtonsoft.Json.Net20, 打开这个文件一看, 发现使用了一个第三方的组件, 这个第三方的组件引用了此组件, 坑爹的是这个第三方组件已经没有更新了, 而且也没有源代码,只能想办法把这个第三方组件的引用给改了。

经过研究,发现可以使用 ildasm 和 ilasm 工具配合来修改程序集的引用。

1、首先使用 ildasm 打开程序集,然后点 File -> Dump 菜单, 把程序集存为一个 il 的纯文本文件。

2、然后刚才保存的 il 文件,在文件的开头找到 

.assembly extern Newtonsoft.Json.Net20
{
.publickeytoken = (30 AD 4F E6 B2 A6 AE ED )
.ver 4:0:2:0
}

代码, 把此代码修改为

.assembly extern Newtonsoft.Json
{
.publickeytoken = (30 AD 4F E6 B2 A6 AE ED )
.ver 12:0:0:0
}

3、把代码中的程序集引用需要全部替换: 替换 [Newtonsoft.Json.Net20] 为 [Newtonsoft.Json]

4、最后使用 ilasm 工具重新编译 il 代码 ilasm source.il /output=assemblyName.dll /dll

ilasm 有版本限制, 在 Windows/Microsoft/FrameworkXX 下面找到对应的版本, 使用对应版本里的 ILASM 工具进行编译, 否则容易出现识别不了 DLL 内容的错误。