Существует ли простой способ подписать блок CLI C++ в VS 2010?

Прямо сейчас я устанавливаю опцию Linker/Advanced/KeyFile.

Я получаю "mt.exe: общее предупреждение 810100b3: подписанный блок строгого имени, и встраивание декларации делает недействительным подпись. Необходимо будет оставить этот файл для создания этого допустимым блоком"..

Читая из сети, это кажется, что я должен установить опцию подписания задержки, загрузить SDK и выполнить sn.exe как событие сборки сообщения. Конечно, должен быть более легкий способ сделать эту общую операцию в VS2010?

21
задан brickner 20 May 2010 в 13:03
поделиться

1 ответ

Здесь довольно много хромоты, это просто никогда не работало раньше. Это было "исправлено" в VS2010, mt.exe теперь генерирует предупреждение вместо того, чтобы позволить этому незаметно пойти не так. Это не настоящее исправление, и нет очевидного исправления, компоновщик не может просто встроить подпись и все же разрешить запуск mt.exe после этого.

Решение состоит в том, чтобы повторно подписать сборку с помощью события после сборки. Сделайте это так:

Command = sn -Ra "$ (TargetPath)" $ (ProjectName) .snk

Если у вас еще нет файла ключа, вам необходимо создайте файл .snk самостоятельно, запустите sn.exe из командной строки Visual Studio. например:

cd \whereTheProjectIsLocated
sn.exe -k MyProject.snk

Или извлеките его из контейнера, или используйте назначенный вами ключевой файл. Отложенное подписание - это просто запуск sn.exe с правильными параметрами командной строки.

15
ответ дан 29 November 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: