Проверка сборки под строгим именем работает локально, но не проходит тестовое устройство
В моей заявке я ссылаюсь на.dll, которая работает локально. После того, как я собрал приложение для выпуска и протестировал его на другом компьютере, библиотека не загружается. Я прикрепил процессы к отладчику Visual Studio на тестовом компьютере, и сообщение об ошибке, которое я получаю, говорит мне о том, что строгое имя не может быть очень надёжным.
Чтобы протестировать на другом компьютере, я просто создаю решение для выпуска и копирую всю папку Release на другой компьютер. Все.dll, включая сбойный, есть, и все, кроме одного, успешно загружаются. Когда я делаю то же самое, но с кодом, который использует этот DLL, закомментированный, все это работает просто отлично.
Есть ли какие-то шаги, которые я пропускаю? Кажется очень странным, что строгое имя библиотеки можно найти локально, но на тестовом компьютере.
1 ответ
Судя по вашим симптомам, у вас может быть задержка подписки на эту сборку? Обратите внимание на раздел, который гласит:
С помощью параметра –Vr или –Vk можно дополнительно включить файл.snk для подписи тестового ключа.
Используйте опцию -Vr или -Vk только во время разработки. Добавление сборки в список пропуска проверки создает уязвимость безопасности. Злонамеренная сборка может использовать полностью указанное имя сборки (имя сборки, версия, культура и маркер открытого ключа) сборки, добавленной в список пропуска проверки, чтобы подделать свою идентификацию. Это позволит вредоносной сборке также пропустить проверку.
Вы, возможно, запустили его, чтобы он проходил на вашем компьютере, а не на компьютерах развертывания.
http://msdn.microsoft.com/en-us/library/t07a3dye%28v=vs.110%29.aspx