程序集生成失败——引用的程序集'没有强名称

本文关键字:程序集 强名称 失败 引用 | 更新日期: 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

右键单击项目->属性,然后选择签名选项卡->选中为程序集签名->选择新密钥

希望有所帮助