Не удалось создать сборку. Ссылочная сборка Interop.Office не имеет строгого имени.

У меня есть проект WPF 4 для взаимодействия с текстовыми документами, созданными в VS2010, и проект пользовательского контроля в выигрышной форме для размещения в нем текстового приложения. И другие звонки. Все комоды указаны в моем основном wpf-приложении. Я хочу опубликовать свой проект, чтобы я мог установить его на другой компьютер и выполнить автоматическое обновление для него. Я получаю сообщение об ошибке: "Сбой генерации сборки - у связанной сборки" Interop.Office "нет строгого имени". ошибка для каждого COM Dll. Ссылка на dll (Interop.word.dll, interop.office.dll, interop.VBIDE.dll), и все эти dll также относятся и используются в моем коде wpf.

Я обнаружил, что ссылка на Сильные подписанные сборки имеет тот же вопрос, но не решает проблему.

3 ответа

Решение

Я потратил некоторое время на траление интернета для этого, я считаю, что ответ, который вам нужен, может быть здесь, для большинства сторонних dll.

"Добавление строгого имени в Interop 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

Щелкните правой кнопкой мыши по своему проекту -> Свойства и перейдите на вкладку Подписи -> Проверить Подпись сборки -> выберите новый ключ

Надеюсь, поможет

Другие вопросы по тегам