Как подписать двоичный файл как часть шага после сборки, используя sn.exe из Windows SDK?

Я совершенно незнаком в этой среде программирования на C# Visual Studio, но мне нужно закончить задачу. Прошу прощения, если мой вопрос кажется глупым. Но я действительно не мог понять, что объясняют другие посты на этом или другом сайте в сети. Мне нужно пошаговое руководство, чтобы сделать этот последний шаг для выполнения моей задачи.

Мне дали приложение под названием MCC, написанное с использованием Visual Studio 2008. Однако это приложение не могло работать должным образом в Windows Vista из-за проблемы DEP. MCC имеет функцию для отображения видео с IP-камеры. Для этого требовался элемент управления ActiveX AxGif89aLite. Однако DEP в Vista по умолчанию включен. Флаг IMAGE_DLLCHARACTERISTICS_NX_COMPAT в заголовке PE не позволяет использовать этот элемент управления. Было проведено несколько тестов и выявлено, что это проблема.

Из статьи в Интернете, http://blog.dyadica.net/archives/data-execution-prevention-workaround, они предлагают мне добавить следующее в событие пост-сборки MCC.

call $ (DevEnvDir).. \ tools \ vsvars32.bat
editbin.exe / NXCOMPAT: NO $ (C: \ Program Files \ Aerocut \ MCC \ MCC2.exe)

Итак, я добавляю это и перестраиваю файл решения MCC. Тогда я не могу понять, что от меня потребовал этот последний шаг.

Обратите внимание, что если вы подпишете двоичный файл в Visual Studio, переключение флага IMAGE_DLLCHARACTERISTICS_NX_COMPAT на этапе посткомпиляции после того, как двоичный файл будет подписан, приведет к сборке, которая не пройдет проверку строгого имени. Чтобы обойти это, подпишите свой двоичный файл как часть шагов после сборки. Для этого используйте SN.EXE из Windows SDK.

Я действительно запутался, что это за двоичный файл для подписи.

  1. Из информации, которую я погуглил, подписание приложения позволяет получить сертификат для программы, чтобы она была более защищенной, я прав?
  2. Я получил SN.EXE на моем компьютере. Но как мне подписать мой бинарный файл как шаг после сборки? Двоичный файл должен быть моим скомпилированным исполняемым файлом, верно?

Я переустановил MCC с восстановленным установочным файлом. Это все еще дает мне следующую ошибку:

Не удалось получить обработчик окна для элемента управления "AxGif89aLite". Безоконные элементы управления ActiveX не поддерживаются.

Помощь очень ценится. Я хотел бы заранее поблагодарить вас здесь.

1 ответ

Если вы не подписываете исполняемый файл уже как часть компиляции, вам не нужно беспокоиться об этом.

Другие вопросы по тегам