程序集生成失败——引用的程序集'没有强名称
本文关键字:程序集 强名称 失败 引用 | 更新日期: 2023-09-27 18:03:47
我有一个WPF 4项目与VS2010中制作的word文档交互,还有一个win form User Control项目将word应用程序托管到其中。还有其他的com。所有的com dll都被引用到我的主wpf应用程序中。我想发布我的项目,这样我就可以将它安装在另一台机器上并为它执行自动更新,我得到错误:"汇编生成失败-引用汇编"互操作。"办公室"没有一个响亮的名字。"。每个COM Dll的错误。一个dll引用(Interop.word.dll, interop.office.dll, interop. vide .dll),所有这些dll也被引用并用于我的wpf代码。
我发现强签名程序集链接有同样的问题,但它并没有解决问题。
我花了一段时间在网上搜索这个,我相信你需要的答案可能在这里,对于大多数第三方dll的。
"为互操作DLL添加强名称"
本文描述了向第三方程序集添加强名称的三种方法。这些命令是:
1. 通过密钥对添加强名称
> SN -k MyKeyPair.snk
> ILDASM ASQLService.dll /out:ASQLService.il
> ILASM ASQLService.il /dll /resource=ASQLService.res /key=MyKeyPair.snk
2。通过证书存储中的证书添加强名称
> ILDASM ASQLService.dll /out:ASQLService.il
> MAKECERT -ss MyCertificateStore -sk MyKeyContainer
> ILASM ASQLService.il /dll /resource=ASQLService.res /key=@MyKeyContainer
3。在个人信息交换(.pfx)文件中通过证书添加强名称
> MAKECERT -r -pe -sv MyCertificate.pvk MyCertificate.cer
> PVK2PFX -pvk MyCertificate.pvk -pi qwerty -spc MyCertificate.cer -pfx MyCertificate.pfx
> SN -p MyCertificate.pfx MyCertificate-publickey.snk
> ILASM ASQLService.il /dll /resource=ASQLService.res /key=MyCertificate-publickey.snk
> SN -R ASQLService.dll MyCertificate.pfx
希望有所帮助
这个注释应该是一个答案:
实际上,"强名称"问题只有在您决定签名时才会开始您的程序集,因为它将要求所有引用的dll强名签名too
如果您不想为程序集签名并希望克服此编译错误。选择"不"为您试图构建的程序集签名。随后,所有的项目引用也不需要签名。
你必须有一个。snk
右键单击项目->属性,然后选择签名选项卡->选中为程序集签名->选择新密钥
希望有所帮助