栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何解决“参考程序集没有强名称”错误?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何解决“参考程序集没有强名称”错误?

为避免此错误,您可以:

  • 动态加载程序集,或
  • 签署第三方程序集。

您将在 .NET-fu中
找到有关对第三方程序集进行签名的说明:对未签名的程序集进行 签名(无延迟签名)

签署第三方大会

签署党的基本原则是

  1. 使用

    ildasm.exe
    并拆卸中间语言(IL)来拆开装配:

    ildasm /all /out=thirdPartyLib.il thirdPartyLib.dll
  2. 重建并签名程序集:

    ilasm /dll /key=myKey.snk thirdPartyLib.il

修正其他参考

除非您的第三方程序集( A.dll )引用了另一个也必须签名的库( B.dll ),否则上述步骤可以正常工作。您可以拆卸,重建并签署双方
A.DLLB.DLL 使用上面的命令,但在运行时,装载 B.DLL 将失败,因为 A.DLL 最初是在参考内置 未签名 的版本
B.DLL

解决此问题的方法是修补上述步骤1中生成的IL文件。您将需要将B.dll的公钥令牌添加到引用中。您可以通过致电获得此令牌

sn -Tp B.dll

这将为您提供以下输出:

Microsoft (R) .NET framework Strong Name Utility  Version 4.0.30319.33440Copyright (c) Microsoft Corporation.  All rights reserved.Public key (hash algorithm: sha1):002400000480000094000000060200000024000052534131000400000100010093d86f6656eed3b62780466e6ba30fd15d69a3918e4bbd75d3e9ca8baa5641955c86251ce1e5a83857c7f49288eb4a0093b20aa9c7faae5184770108d9515905ddd82222514921fa81fff2ea565ae0e98cf66d3758cb8b22c8efd729821518a76427b7ca1c979caa2d78404da3d44592badc194d05bfdd29b9b8120c78effe92Public key token is a8a7ed7203d87bc9

最后一行包含公钥令牌。然后,您必须在 A.dll 的IL中搜索对 B.dll 的引用, 并按 如下所示添加令牌:

.assembly extern  MyAssemblyName{  .publickeytoken = (A8 A7 ED 72 03 D8 7B C9 )     .ver 10:0:0:0}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596933.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号