Dav*_*vy8 16 build-automation inno-setup wix visual-studio-2008
基本上我需要的是一种自动更新WiX产品版本号(带Votive等的3.0)的方法,然后将该版本号放入Inno Setup"bootstrapper"中
我的流程几乎都是自动化的,但版本号仍然需要手动更新,这显然不太理想,但我找不到如何在编译时将值传递给Inno Setup(以及如何引用它们),在WiX项目中,我需要知道如何在Visual Studio 2008中的同一解决方案中引用不同项目的版本号
Oli*_*sen 26
无需传递任何东西!您可以简单地让InnoSetup预处理器直接从二进制文件的版本资源中读取版本信息,例如:
#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
Run Code Online (Sandbox Code Playgroud)
在版本5.4.1(2011-02-09)之前,ISPP未包含在默认的InnoSetup软件包中.您必须下载InnoSetup快速入门包:http://www.jrsoftware.org/isdl.php#qsp(感谢@Gwyn,更新)
您可以从包中的文件版本获取WiX的ProductVersion.语法类似于:
<Product Version="$(var.FileVersion.FileId)">
Run Code Online (Sandbox Code Playgroud)
或者您可以使用"-dVersionFromCommandLine = 1.0.0.0"开关在命令行上将其提供给蜡烛,语法如下:
<Product Version="$(var.VersionFromCommandLine)">
Run Code Online (Sandbox Code Playgroud)
可以在最新版本的WiX v3中使用.只有后者适用于WiX v2.