Assembly generation failed -- Referenced assembly 'Interop.Office' does not have a strong name

JSJ picture JSJ · Jul 27, 2011 · Viewed 26.5k times · Source

I have a WPF 4 project to interact with word documents made in VS2010 and a win form User Control project to host word application into it. And other com dlls. All com dlls are referred into my main wpf application. I want to publish my project so I can install it on another machine and perform automatic update for it, I get error: "Assembly generation failed -- Referenced assembly 'Interop.Office' does not have a strong name. ". error for each COM Dll. A dll refer to (Interop.word.dll, interop.office.dll, interop.VBIDE.dll) and all these dlls are also refer and used into my wpf code.

I found Strong Signed Assemblies link have same question but it does not solve the problem.

Answer

Matt picture Matt · Oct 14, 2011

I spent a while trawling the internet for this, I believe that the answer you need may be here, for most 3rd party dll's.

"Adding Strong Name to Interop DLL"

The article describes three ways to add a strong name to a third party assembly. The commands are:
1. Adding a Strong Name via Key Pair

> SN -k MyKeyPair.snk
> ILDASM ASQLService.dll /out:ASQLService.il
> ILASM ASQLService.il /dll /resource=ASQLService.res /key=MyKeyPair.snk

2. Adding a Strong Name via a Certificate in a Certificate Store

> ILDASM ASQLService.dll /out:ASQLService.il  
> MAKECERT -ss MyCertificateStore -sk MyKeyContainer
> ILASM ASQLService.il /dll /resource=ASQLService.res /key=@MyKeyContainer

3. Adding a Strong Name via a Certificate in a Personal Information Exchange (.pfx) File

> 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

Hope it helped