从IsCmdBld.exe设置InstallShield 2009 InstallScript项目的版本

时间:2010-01-28 16:35:32

标签: installshield

我是InstallShield的新手并继承了一个InstallScript项目。我大部分都想通了解决大部分问题。但是,我希望在我们的构建服务器上使用我们产品的每个版本自动构建此项目。我有这个工作正常。但是出于某种原因,我不能让版本号增加。

我正在使用命令:

IsCmdBld.exe -P <.ism location>
-L <some_path_variable>=<some_value>
-L <some_path_variable2>=<some_value2>

这很有效。

但是,添加-y 1.2.3-y "1.2.3"-z Version=1.2.3-z Version="1.2.3"-z "Version=1.2.3"-z ProductVersion=1.2.3-z ProductVersion="1.2.3"或{ {1}}不起作用。

当我说它不起作用时,我的意思是使用生成的安装程序不会尝试进行升级,就像我从InstallShield手动增加Product Properties表中的Version字符串一样。

我有什么遗失的吗?我知道我没有提供太多的东西,只是希望有人之前遇到过这个问题。此外,使用-z "ProductVersion=1.2.3".开关不起作用。

任何想法都赞赏。

2 个答案:

答案 0 :(得分:7)

我相信IsCmdBld仅支持传递 MSI项目ProductVersion属性,但不支持InstallScript项目。我相信在调用IsCmdBld之前你需要做这样的事情:

set project = CreateObject("ISWiAuto15.ISWiProject") 
project.OpenProject "C:\test.ism"
project.ProductVersion = "2.0.0"
project.CloseProject
set project = nothing

或者,您可以将项目类型保存为XML格式,并使用XPath / XPoke更新ProductVersion表中的Property。由于DTD,语法有点可怕,但可以做到。

答案 1 :(得分:4)

这是一个老问题,但我终于能够弄清楚如何让它从命令行运行,所以我想我会分享它。我在项目中创建了一个Path Variable(下例中的VersionNumber),并在“General Information”部分中将产品版本设置为该路径变量。

然后,您可以使用-l标志在命令行设置它。

ISCmdBld.exe -p project.ism -l VersionNumber=1.1.0