Как мне отладить "проверка строгого имени не удалась"? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть программа, которая отлично работает на моем старом компьютере с Windows 7. Я скопировал его папку на мой новый компьютер с Windows 10 (нет подробностей, требующих более сложного процесса установки), и вдруг он не запустился. Попытка запустить его в командной строке дает мне:

Необработанное исключение: System.IO.FileLoadException: Не удалось загрузить файл или сборку 'foo, Версия = 2.0.9.4, Culture = нейтральный, PublicKeyToken = 32c39770e9a21a67' или одну из ее зависимостей. Проверка строгого имени не удалась. (Исключение из HRESULT: 0x8013141A) ---> System.Security.SecurityException: Сбой проверки строгого имени. (Исключение из HRESULT: 0x8013141A) --- Конец внутренней трассировки стека исключений ---

Который вообще ничего мне не говорит. Либо у программы «или одной из ее зависимостей» есть проблема с проверкой строгого имени, и я не знаю, какая это, и я не могу понять, как определить, в чем проблема. !

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

Я пытался запустить sn.exe -v против программы. Это говорит мне:

Не удалось проверить сборку - Ошибка проверки строгого имени.

Что, опять же, совершенно бесполезно, поскольку у меня нет информации о том, что пошло не так и почему.

Я нашел несколько вопросов здесь с ответами об использовании sn.exe или различных хитростях реестра, чтобы отключить проверку строгого имени. Это не то, что я хочу сделать; Я хочу выяснить, в чем проблема и исправить ее. И еще раз, все это работало просто отлично, с точно таким же двоичным файлом, на моем компьютере с Windows 7.

Как выяснить, что не так с сильной проверкой имен в этой программе?

1 Ответ

1 голос
/ 04 апреля 2019

Предполагается, что сборка была зарегистрирована для пропуска проверки строгого имени на компьютере с Windows 7, перестанет ли она работать там, если вы используете sn.exe -Vu foo.dll для отмены регистрации foo.dll после пропуска проверки? В этом случае у вас может не быть другого выбора, кроме sn.exe -Vr foo.dll на компьютере с Windows 10, чтобы разрешить пропуск проверки для этой сборки. Вы пытались скопировать сборки во второй раз с машины Windows 7, чтобы исключить случайное повреждение из набора возможных ответов? Задержка сборки подписана или что-то в этом роде? Является ли рабочая версия этой сборки в GAC машины Windows 7?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...