加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 程序集以及何时不能选择强命名?

发布时间:2020-12-15 19:29:25 所属栏目:百科 来源:网络整理
导读:前段时间我在Stack Overflow,Assembly Names and Versions上询问了以下问题. 现在我已经意识到我无法使用强名称签署我的程序集,因为第三方依赖项之一不是强名称程序集,因此我的签名不可信. 我试图简单地将程序集文件名MyAssembly.dll更改为MyAssembly.v.1.1.
前段时间我在Stack Overflow,Assembly Names and Versions上询问了以下问题.

现在我已经意识到我无法使用强名称签署我的程序集,因为第三方依赖项之一不是强名称程序集,因此我的签名不可信.

我试图简单地将程序集文件名MyAssembly.dll更改为MyAssembly.v.1.1.dll,但是当我这样做并引用重命名的程序集时 – 它不会像其他引用一样被复制.似乎是因为文件名和程序集的Identity属性之间存在不匹配.

我有项目A和B,它们是项目C的依赖项.项目A需要引用MyAssembly.dll v.1.0,项目B需要引用MyAssembly.dll v.2.0,因此两者都需要能够位于Project C的bin /中发布文件夹.

怎么办?我怎样才能解决这个问题?

解决方法

理想情况下,任何自尊的第三方组装开发人员都会签署他们的程序集.我会尝试以下方法:

>查看您是否可以联系第三方程序集提供商并请求他们为您签名.
>如果第三方程序集提供程序是开源的,请使用强名称密钥自行下载并编译源代码. (考虑将此贡献回项目).

否则,(只要许可证允许):

>尝试ildasm.exe和ilasm.exe,如下所示:

ildasm.exe /out:TheAssembly.il TheAssembly.dll

ilasm.exe TheAssembly.il /key=MyKey.snk / dll /output=TheAssembly.dll
>尝试其他人提到的ILMerge.

否则,您可能需要为第三方程序集中当前的功能寻找其他选项.

祝你好运!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读