![](/img/trans.png)
[英]Assembly generation failed — Referenced assembly 'XXXX' does not have a strong name
[英]Assembly generation failed — Referenced assembly 'Interop.Office' does not have a strong name
我有一个WPF 4项目与VS2010中制作的Word文档进行交互,还有一个Win Form User Control项目将Word应用程序托管到其中。 和其他COM DLL。 所有的com dll都被引用到我的主要wpf应用程序中。 我想发布项目,以便可以将其安装在另一台计算机上并对其执行自动更新,但出现错误:“程序集生成失败-引用的程序集'Interop.Office'没有强名。”。 每个COM Dll错误。 一个dll引用(Interop.word.dll,interop.office.dll,interop.VBIDE.dll),所有这些dll也都引用并用于我的wpf代码。
我发现“ 强签名的程序集”链接有相同的问题,但不能解决问题。
我花了一段时间在互联网上拖拉,我相信对于大多数第三方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也都进行强名称签名。
如果您不想在程序集上签名并希望克服此编译错误。 选择不签署您要生成的程序集。 随后,所有项目引用均不需要签名。
您必须有一个.snk
右键单击您的项目->属性,然后单击签名选项卡->选中对程序集签名->选择新密钥
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.