У меня есть программа, которая отлично работает на моем старом компьютере с 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.
Как выяснить, что не так с сильной проверкой имен в этой программе?