Это классическая задача, которая имеет множество решений , описанных .Однако ни один из них, похоже, не работает для меня.
Я использую библиотеку Report.NET в решении SharePoint.Добавление Reports.dll в качестве ссылки и компиляция приводит к сообщению об ошибке «Генерация сборки не удалась. Ссылочная сборка« Отчеты »не имеет строгого имени».Мой проект, однако, имеет 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
<output removed for brevity>
Class 95
Class 96
Method Implementations (total): 1
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Signing file with strong name
Operation completed successfully
В результате я получаю новую метку отчетов 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 не представляет сборку со строгим именем» при ее запуске до процесса дизассемблирования / подписи / повторной сборки.
Однако при запуске его после разборки / подписывания / повторной сборки при повторном добавлении его в Visual Studio все равно появляется исходное сообщение об ошибке.