Пример кода, как и было обещано. Этого должно быть достаточно, чтобы начать работу.
Следующий JavaScript может использоваться для создания файла InnoSetup iss, содержащего номер версии. Фактический файл будет выглядеть так:
VersionInfoVersion=1.2.3.12345
AppVerName=My App v1.2.3.12345
Основной скрипт Inno Setup будет включать этот файл, добавив в конец раздела [Setup] следующее:
[Setup]
AppId={{...}}
...
#include "version.iss"
Вот JavaScript (он будет сохранен в отдельном файле - например, version.js):
createInnoSetupIncludeFile("My App", 1, 2, 3, 12345, "version.iss");
function createInnoSetupIncludeFile(appName, verMajor, verMinor, verSubMinor, buildNumber, headerFileName)
{
var versionString = verMajor + "." + verMinor + "." + verSubMinor + "." + buildNumber;
var fileSystemObject = WScript.CreateObject("Scripting.FileSystemObject");
var fileObject = fileSystemObject.CreateTextFile(headerFileName, true);
fileObject.WriteLine("VersionInfoVersion=" + versionString);
fileObject.WriteLine("AppVerName=" + appName + " v" + versionString);
fileObject.Close();
fileObject = null;
fileSystemObject = null;
}
Вы можете настроить этот скрипт для создания файла version.iss в другой папке.
Наконец, вам нужно выполнить JavaScript - лучшее место будет в событии Pre-Build вашего проекта Visual Studio. Добавить следующее:
cscript version.js //NoLogo
Вам необходимо изменить это, чтобы также создать совместимый с Wix включаемый файл. Раньше я делал это, но выбрасывал Wix в пользу Inno Setup, поэтому у меня нет этого кода под рукой. Однако для сценария Wix существует механизм, который должен направить вас в правильном направлении - концепция та же самая - создать текстовый файл, который определяет номер версии, а затем включить его.
Надеюсь, это поможет.