Как автоматизировать процесс сборки нескольких проектов, включив цифровую подпись exe в Delphi? - PullRequest
3 голосов
/ 13 мая 2010

После создания группы проектов из 2 проектов с Delphi (2009) я подписываю цифровую подпись 2 ex-файлов, используя подпись InstallAware Code, exe-файл, поставляемый с Delphi 2009.

Как можно автоматизировать цифровую подпись, поэтому при сборке я также могу прикрепить цифровую подпись.

Для цифровой подписи я использую файл pvk (закрытый ключ) и файл spc (сертификат издателя Sw).

Подзапрос: Более того, я создал группу проектов, потому что у меня есть 2 exes, но они почти одинаковые, единственное, что меняется, это значок приложения и имя приложения (одно - ProductOne.dpr, другое - ProductTwo.dpr ).

На практике у меня есть 2 бренда одного и того же продукта, у меня одна сборка, но детали ключей активации активируют одну или другую, так или иначе, теперь меня попросили изменить значок и имя файла, и для этого мне нужно собрать 2 проекты, ключа активации больше не достаточно, чтобы различать 2. В любом случае, если есть способ сделать это из одного проекта, было бы лучше.

Ответы [ 3 ]

7 голосов
/ 13 мая 2010

Для первой части:
Мы кодируем наши исполняемые файлы с помощью сценария FinalBuilder , но этого можно достичь с помощью командной строки:

signtool sign /f cert-file.pfx /p pwd /d "MyApp description" /du "http://www.your-url-here.com/" /t "http://timestamp.globalsign.com/timstamp.dll" MyApp.exe

signtool поставляется из MS Windows SDK и может также работать с сертификатами из хранилища сертификатов локального компьютера. См. Связанную страницу документа для незначительных изменений, требуемых для различных форм свидетельства.
Я предполагаю, что это может быть помещено в события пост-сборки вашего проекта. Затем он будет запускаться каждый раз, когда вы делаете полную сборку.

Не знаю насчет второго бита вопроса - хотя я полагаю, что я склонен использовать сторонний инструмент, такой как FinalBuilder (снова), чтобы управлять обменом значками / ресурсами и т. Д. И для фактической сборки. *

4 голосов
/ 13 мая 2010

Для подписи моего exe-файла я использую "signtool", и у вас уже есть командная строка для подписания вашего exe-файла от шунти.

Для изменения значка exe я использую «ResHacker.exe»: это небольшое бесплатное приложение, которое можно автоматизировать из командной строки, поэтому его можно использовать с любым программным обеспечением для автоматизации сборки. Вот пример командной строки:

"C:\Path\ResHacker.exe" -modify "D:\PathToExe\ExeName.exe", "D:\PathToExe\ExeName.exe", "C:\PathToIco\IcoName.ico", ICONGROUP, MAINICON,

Не вводите запятые!

Работает абсолютно нормально. Для автоматизации я использую FinalBUilder и генерирую 4 (четыре) версии одного приложения из одного скрипта, каждый раз перестраивая их, чтобы я мог использовать разные директивы компилятора, затем я меняю значок, чтобы установить версию подписывать все, создавать настройки, подписывать настройки, архивировать настройки и, наконец, загружать мои настройки на мой «бета» -сайт (не наш официальный сайт, другой сайт, о котором знают только некоторые люди)

3 голосов
/ 13 мая 2010

Я бы использовал Visual Build Pro от Kinook (я думаю, что они ТАК рекламодатели) для автоматизации компиляции и подписывания. Он может подписывать напрямую, нет необходимости в SignTool.

Part2 звучит как хорошая работа для ResHacker , которую можно использовать для замены ресурсов в приложении. Это должно быть сделано до подписания.

...