.net 强签名和更新引用程序集
我有两个第三方程序集:.net 强签名和更新引用程序集,.net,assemblies,code-signing,strongname,.net,Assemblies,Code Signing,Strongname,我有两个第三方程序集: Foo.dll 及 ReferencesFoo.dll 如前所述,ReferencesFoo.dll是一个引用了Foo.dll 为了我的申请,我需要辞职。我将ildasm/ilasm与签名密钥结合使用以放弃它们,但是,ReferencesFoo.dll仍然包含(在它的清单中?)对Foo.dll旧公钥和公钥令牌的引用 那么,如何使用密钥对两个dll进行签名,并更新ReferencesFoo.dll中的引用,而不获取源代码并重新编译?您可以使用SN.exe工具对程序集进行签名
Foo.dll
及
ReferencesFoo.dll
如前所述,ReferencesFoo.dll
是一个引用了Foo.dll
为了我的申请,我需要辞职。我将ildasm/ilasm与签名密钥结合使用以放弃它们,但是,ReferencesFoo.dll
仍然包含(在它的清单中?)对Foo.dll
旧公钥和公钥令牌的引用
那么,如何使用密钥对两个dll进行签名,并更新
ReferencesFoo.dll
中的引用,而不获取源代码并重新编译?您可以使用SN.exe工具对程序集进行签名(使用-R开关退出已签名的程序集)
但您必须知道,修改第三方组件可能是非法的。因此,在这样做之前,确保没有法律问题
我不知道有什么工具可以自动更改引用。您可以在metadatatable#35中找到它们,其结构如下:
- 主要版本, BuildNumber,修订号(2字节 常数)
- 标志(类型为的4字节位掩码 (国旗)
- PublicKeyOrToken(索引为Blob heap–用于 确定此文件的作者 装配)
- 名称(索引到字符串堆)
- 区域性(索引到字符串堆)
- HashValue(索引到Blob堆中)
添加了关于在何处查找答案参考的说明。