Это классическая проблема, в которой многочисленные решения описаны. Однако никто из них, похоже, не работает для меня.
Я использую библиотеку Report.NET в решении SharePoint. Добавление Report.dll в качестве ссылки и компиляция результатов в сообщении об ошибке "Сборка сборки не удалась. Ссылочная сборка" Отчеты "не имеет сильного имени". Однако у моего проекта есть ключ .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
В итоге я получаю новый timestamped с Date.dll. Однако добавление этого в качестве ссылки на мой проект и здание дает такое же сообщение об ошибке, что и раньше. В свойствах ссылки "Отчеты" отображается "Сильное имя: False".
Чтобы не обескураживать некоторые проблемы, я пытаюсь переписать сборку с помощью сильной утилиты именования:
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.