Как я могу заставить Visual Studio 2017 автоматически подписывать приложение Win32?

Я использую Visual Studio 2017. Я не разработчик. Я просто пытаюсь написать простой скрипт синтаксического анализа, и я знаком с визуальной студией. Я использую Atmel Studio (которая основана на VS) для написания встроенного кода, но мне не нужно заниматься подписанием. Я установил Visual Studio на свой рабочий компьютер, и теперь я получаю ошибки bit9 каждый раз, когда делаю новую сборку.

Внутренние ИТ указывают мне на несколько устаревших сертификатов. Теперь у меня есть сертификат для применения к моим сборкам, однако процесс определен Вот очевидно не будет работать для приложения Win32. У меня нет вкладки Подписи в свойствах проекта.

Я также изучил командную строку visual studio с помощью signtool. Тем не менее, это заняло бы много времени, чтобы узнать, как это работает и реализовать его.

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

1

Решение

Вот как я это сделал с Visual Studio 2010 и Visual Studio 2015 для неуправляемых приложений C32 или C ++ Win32. Тебе нужно:

  • Сертификат подписи. Это обычно дается как PFX при работе в Windows и обычно является промежуточным сертификатом в цепочке сертификатов.
  • Пароль к вышеуказанному PFX для расшифровки закрытого ключа сертификата.

С их помощью можно создать следующий пользовательский шаг сборки для вашего проекта Win32:

"$(FrameworkSDKDir)bin\\x86\signtool.exe" sign /v /f "path-to-your-cert\yourcert.pfx" /p password "$(TargetPath)" > "$(OutDir)sign\$(ProjectName)-sign.out"

Это позволит использовать ваш сертификат для подписи выходных данных проекта (будь то DLL или EXE-файл не имеет значения) и записать выходные данные сертификата подписи в файл с именем вашего проекта с суффиксом. sign.outпоместив этот файл в папку с именем sign от вашего выходного каталога.

Это может показаться немного излишним, но есть причина для этого сгенерированного выходного файла. Создав этот файл и назвав его одним из «Выходных данных» пользовательского шага сборки:

введите описание изображения здесь

он может быть сравнительно использован для определения того, стоит ли переподписывать или нет. Каждый раз, когда проект создается, если целевое изображение (ваш exe или dll) регенерируется, этот выходной файл будет устаревшим, и пользовательский шаг сборки будет запущен для его регенерации (и, таким образом, также повторно подписать изображение ). Кстати, файл sign.out будет содержать что-то вроде этого:

The following certificate was selected:
Issued to: The Signing Cert Name Here

Issued by: The Issuer Cert Name Here

Expires:   Sat Dec 31 16:59:59 2039

SHA1 hash: 232C80E19EBC71330E7C12CA8C07B345B1531777Done Adding Additional Store
Successfully signed: full-path-to-image-here

Number of files successfully Signed: 1

Number of warnings: 0

Number of errors: 0

Получив PFX и пароль, вы можете легко протестировать команду вручную, прежде чем окончательно сконфигурировать ее как часть сборки. Единственный настоящий подстановочный знак, который я видел, — это полный путь к signtool.exe, который, похоже, время от времени меняется (например, в VS2008 отличается от VS2015.

Во всяком случае, так я это сделал. Надеюсь, вы тоже можете.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector