Можно ли автоматизировать создание пакета установки inno с помощью ant?

StackOverflow https://stackoverflow.com/questions/177611

  •  05-07-2019
  •  | 
  •  

Вопрос

Я создаю приложение Eclipse RCP.

Я следую совету Джоэла в следующей статье "Daily Builds - ваш друг":

http://www.joelonsoftware.com/articles/fog0000000023.html

Итак, я написал хороший сценарий сборки, который создает продукт Eclipse RCP и запускает модульные тесты кода. Все результаты затем распространяются в списке разработчиков (после некоторого ворчания). Теперь мой следующий шаг, я хочу создать установочный пакет, который я обычно создаю вручную, используя компилятор inno setup.

Вопрос в том, как мне создать этот пакет автоматически? Я думаю, я могу сгенерировать файл установки inno автоматически из ant, а затем вызвать компилятор из командной строки, но я не знаю, возможно ли это.

Какие-нибудь советы для этой задачи? Может быть, любое другое приложение установки, которое можно использовать из муравья?

Это было полезно?

Решение

Конечно, проект Inno прост, это простой текстовый файл, поэтому вы можете легко редактировать скрипт setupper с помощью ant, однако я бы порекомендовал создать отдельный небольшой включаемый файл с помощью вашего скрипта. Вы можете хранить там " переменные " например, номер версии + сборки, который отображается в начале установки.

поместите эту строку в ваш установщик:

#include "settings.txt"

и сделайте так, чтобы в settings.txt было что-то вроде этого

#define myver=xxx.xxx
#define tags

теперь вам не нужно прикасаться к самому коду setupper из скрипта сборки.

ниже приведен фрагмент моего скрипта сборки для компиляции настроек. вам нужно выполнить командный файл из муравья следующим образом:

<exec dir="." executable="cmd" os="Windows NT">
  <arg line="/c build.bat"/>
</exec>

образец пакета build.bat:

set isxpath="c:\program files\inno setup 5"
set isx=%isxpath%\iscc.exe
set iwz=myproj.iss
if not exist %isx% set errormsg=%isx% not found && goto errorhandler
%isx% "%iwz%" /O"%buildpath%" /F"MySetupper.exe" >>%logfile%
goto :eof

Другие советы

Еще одна приятная уловка при автоматизации сборки установщика заключается в использовании макроса препроцессора GetFileVersion (ISPP). Таким образом, вам не придется дублировать номера версий ваших (двоичных) файлов в жестко запрограммированной форме (как в Tom's settings.txt ) - компилятор установщика просто прочитает его из ресурсов версий файлов, которые путь. Например:.

#define AppName "My App"
#define SrcApp "MyApp.exe"
#define FileVerStr GetFileVersion(SrcApp)
#define StripBuild(str VerStr) Copy(VerStr, 1, RPos(".", VerStr)-1)
#define AppVerStr StripBuild(FileVerStr)

[Setup]
AppName={#AppName}
AppVersion={#AppVerStr}
AppVerName={#AppName} {#AppVerStr}
UninstallDisplayName={#AppName} {#AppVerStr}
VersionInfoVersion={#FileVerStr}
VersionInfoTextVersion={#AppVerStr}
OutputBaseFilename=MyApp-{#FileVerStr}-setup

Кроме того, вы можете пересылать символы в компилятор с помощью переключателя командной строки / d , например:

iscc.exe /dSpecialEdition ...

, а затем позже используйте их в ifdef для создания различных типов установщика (следующий глупый пример):

[Registry]
#ifdef SpecialEdition
Root: HKLM; Subkey: Software\MyCompany\MyApp; ValueName: SpecialEdition; ValueType: dword; ValueData: 1 ...
#endif
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top