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