Это классическая проблема, для которой описаны многочисленные решения . Однако мне кажется, что ни один из них не работает.
Я использую библиотеку Report.NET в решении SharePoint. Добавление Reports.dll в качестве ссылки и компиляция приводит к сообщению об ошибке «Ошибка создания сборки - указанная сборка« Reports »не имеет строгого имени». Однако у моего проекта есть key.snk, связанный в свойствах проекта. Поэтому я пытаюсь разобрать, подписать и собрать dll с помощью этого ключевого файла, как описано в другом месте:
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\MyProj
\dll>ildasm Reports.dll /out:Reports.il
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\MyProj
\dll>ilasm Reports.il /dll /resource=Reports.res /key=..\key.snk
В итоге я получаю новый Reports.dll с отметкой времени до настоящего момента. Однако добавление этого в качестве ссылки на мой проект и здание дает то же сообщение об ошибке, что и раньше. В свойствах ссылки «Отчеты» отображается «Строгое имя: Ложь».
Чтобы не расстраиваться из-за неприятностей, я пытаюсь повторно подписать сборку с помощью утилиты строгого именования:
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\MyProj
\dll>sn -R Reports.dll ..\key.snk
Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly 'Reports.dll' successfully re-signed
Возможно, стоит отметить, что запуск утилиты SN завершается с ошибкой с сообщением об ошибке «Reports.dll does не представляет собой сборку со строгим именем "при ее запуске до процесса дизассемблирования / подписи / повторной сборки.
Однако при запуске после разборки / подписания / повторной сборки я все равно получаю исходное сообщение об ошибке при повторном добавлении в Visual Studio.