Подтвердить что ты не робот

Не удалось выполнить проверку сильного имени

Две машины. Как с .NET 3.5, так и с распространенными распространяемыми VС++ SP1 версиями VS 2008

Один exe, который использует две подписанные библиотеки DLL, один в С++/CLI и один в С#

EXE загружается и работает нормально на одной машине.

С другой стороны, я получаю "Сильное подтверждение имени" в исполняемом файле С++ (HRESULT 0x8013141A)

Любые идеи?

4b9b3361

Ответ 1

Откройте командную строку как администратор и введите следующие команды:

reg DELETE "HKLM\Software\Microsoft\StrongName\Verification" /f
reg ADD "HKLM\Software\Microsoft\StrongName\Verification\*,*" /f
reg DELETE "HKLM\Software\Wow6432Node\Microsoft\StrongName\Verification" /f
reg ADD "HKLM\Software\Wow6432Node\Microsoft\StrongName\Verification\*,*" /f

Ответ 2

Откройте командную строку как администратор и введите следующую команду:

"C:\Program Files\Microsoft SDK\Windows\v6.0A\Bin\x64\sn.exe" -Vr <dllpath>

Обратите внимание, что аргумент чувствителен к регистру. Источник с более подробной информацией: http://blogs.msdn.com/b/keithmg/archive/2012/03/20/strong-name-validation-failed-exception-from-hresult-0x8013141a.aspx

Ответ 3

Вы должны использовать 64-разрядную версию sn.exe на 64-разрядной машине. (C:\Program Files\Microsoft SDK\Windows\v6.0A\Bin\x64\sn.exe)

Ответ 4

Это код, который запускается на машине разработки, где вы могли бы запустить "sn.exe -Vr AssemblyName.dll" на каком-то этапе, что позволит вам использовать подписанную задержкой сборку, как если бы она была полностью подписана. Когда вы переносите задержанную подписку на другую машину и запускаете ее, она не будет проверять достоверность имени, потому что она не полностью подписана.

Ответ 5

В моем случае у меня была такая же проблема с Visual Studio 2015, и я уже подписал сборку.

Я исправил его следующим образом: Щелкните правой кнопкой мыши на проекте, который вызывает проблему → "Свойства" → "Создать" → Измените значение поля "Платформа-цель".

Мне пришлось изменить его с Any CPU на x86, но я думаю, что в функции проекта и библиотеки, которая терпит неудачу, вы должны изменить ее значение на x64.

Ответ 6

SN.EXE отсутствует в новых версиях Visual Studio. В Visual Studio 2012, мы должны использовать "Командная строка разработчика для Visual Studio 2012". Затем запустите команду "sn".

Синтаксис: sn -Vr *, 2d58152b8e842be2

где "2d58152b8e842be2" - это токен открытого ключа, указанный в сообщении об ошибке. Почему-то это не решило мою проблему.

Ответ 7

Возможно, вы сможете обойти это при разработке, перейдя в настройки проекта → Подписать → и снимите флажок "Подписать сборку".

Я столкнулся с этим сегодня во время отладки с копией исходного кода Entity Framework.

Ответ 8

Я столкнулся с этим сегодня и наткнулся на http://timgeerts.blogspot.co.uk/2009/08/strong-name-validation-failed.html, который, кажется, является решением.

Вариант 1) Отключите покрытие кода (в VS 2010, перейдите в "Настройки тестирования" → "Данные и диагностика" - "Уклониться от поля" Включено "рядом с обложкой кода).

Вариант 2) Добавьте файл ключа подписи в конфигурацию покрытия кода (в VS 2010, перейдите в "Настройки тестирования" → "Данные и диагностика" → выберите "Покрытие кода" и нажмите "Настроить" вверху. Это соответствует значению "keyFile" для тега CodeCoverage в файле .testsettings.)

В VS 2012, покрытие кода включено по умолчанию. Он может быть отключен через файл .runsettings с соответствующим исключением. Подробнее см. http://msdn.microsoft.com/en-us/library/jj159530.aspx и пример файла. Для варианта 2, хотя в файле .runsettings явно не существует явной настройки, правильная вещь, кажется, происходит автоматически в отношении подписи (YMMV). Однако, если вы ссылаетесь на файл VS.testsettings VS 2010., то он будет нуждаться в редактировании, как указано выше.

Ответ 9

Щелкните правой кнопкой мыши Project → Свойства → Вставить вкладку → Платформа Target → Выберите "x64"

Ответ 10

Я работаю с VS.Net Ultimate 2012

и это решение помогло мне:

Щелкните правой кнопкой мыши на Project- > properties- > Build Tab- > switch. Создайте сериализацию в off- > done

Ответ 11

Я исправил это, перейдя в меню "Сборка" (верхняя панель) и скажу "Перестроить xxxProject.plugin" только для этого конкретного проекта, в отличие от построения всего решения.

Ответ 12

Если кто-то не может найти 64-битную версию sn.exe, проверьте здесь: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64\sn.exe