首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用WiX、Inno Setup和VS2008自动构建版本号

使用WiX、Inno Setup和VS2008自动构建版本号
EN

Stack Overflow用户
提问于 2008-12-10 22:16:31
回答 4查看 8.7K关注 0票数 16

基本上,我需要的是一种自动的方式来更新WiX中的产品版本号(带有Votive等的3.0),然后将该版本号放入Inno设置"bootstrapper“中

我的过程基本上是自动化的,但是版本号仍然需要手动更新,这显然不是很理想,但是我不知道如何在编译时将值传递给Inno Setup (以及如何引用它们),并且在WiX项目中,我需要知道如何在Visual Studio2008的同一解决方案中引用不同项目的版本号

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-12-11 08:58:34

不需要传递任何东西!您可以简单地让InnoSetup预处理器直接从二进制文件的版本资源中读取版本信息,例如:

代码语言:javascript
复制
#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)之前,默认InnoSetup包中不包含ISPP。你必须下载InnoSetup快速入门包:http://www.jrsoftware.org/isdl.php#qsp (感谢@Gwyn的更新)

票数 26
EN

Stack Overflow用户

发布于 2008-12-11 18:51:11

您可以从包中的文件版本中获取WiX的ProductVersion。语法类似于:

代码语言:javascript
复制
<Product Version="$(var.FileVersion.FileId)">

或者,您可以在命令行上使用"-dVersionFromCommandLine=1.0.0.0“开关将其提供给坎德尔,语法如下:

代码语言:javascript
复制
<Product Version="$(var.VersionFromCommandLine)">

两者都适用于最新版本的WiX v3。只有后者适用于WiX v2。

票数 8
EN

Stack Overflow用户

发布于 2008-12-10 22:23:15

我的方法是使用WSF脚本(我使用JavaScript,但您可以使用VBScript,甚至是使用Cygwin的SH脚本)创建一个包含版本号定义的头文件。您可以使用Wix <include>语句将版本号拖入。

对于Inno设置,我创建了一个包含版本号的.iss文件,它包含在主iss脚本中。

我在家,但是如果你愿意,我明天可以发布一些示例代码。

编辑:我忘了提到,在我的各种VS项目的预构建阶段,我运行了生成包含构建号的文件的脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/357803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档