Я использую Visual Studio 2017. Я не разработчик. Я просто пытаюсь написать простой скрипт синтаксического анализа, и я знаком с визуальной студией. Я использую Atmel Studio (которая основана на VS) для написания встроенного кода, но мне не нужно заниматься подписанием. Я установил Visual Studio на свой рабочий компьютер, и теперь я получаю ошибки bit9 каждый раз, когда делаю новую сборку.
Внутренние ИТ указывают мне на несколько устаревших сертификатов. Теперь у меня есть сертификат для применения к моим сборкам, однако процесс определен Вот очевидно не будет работать для приложения Win32. У меня нет вкладки Подписи в свойствах проекта.
Я также изучил командную строку visual studio с помощью signtool. Тем не менее, это заняло бы много времени, чтобы узнать, как это работает и реализовать его.
Надеюсь, кто-то еще решил это, и я могу сэкономить время. Если нет простых решений, я просто вернусь к ручному анализу, потому что это уже заняло большую часть моего времени.
Вот как я это сделал с Visual Studio 2010 и Visual Studio 2015 для неуправляемых приложений C32 или C ++ Win32. Тебе нужно:
С их помощью можно создать следующий пользовательский шаг сборки для вашего проекта 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.
Во всяком случае, так я это сделал. Надеюсь, вы тоже можете.
Других решений пока нет …