【问题标题】:Setting Version of InstallShield 2009 InstallScript project from IsCmdBld.exe从 IsCmdBld.exe 设置 InstallShield 2009 InstallScript 项目的版本
【发布时间】:2010-01-28 16:35:31
【问题描述】:

我是 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"-z "ProductVersion=1.2.3". 不起作用。

当我说它不起作用时,我的意思是使用生成的安装程序不会像我从 InstallShield 内部手动增加产品属性表中的版本字符串那样尝试进行升级。

我有什么遗漏吗?我知道我没有提供太多继续,只是希望有人以前遇到过这个问题。此外,使用-c COMP 开关也不起作用。

任何想法表示赞赏。

【问题讨论】:

    标签: installshield


    【解决方案1】:

    我相信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 更新 Property 表中的 ProductVersion。由于DTD,语法有点吓人,但可以做到。

    【讨论】:

    • 是的,Acresso 论坛中的某个人也让我沿着这条路线走。除了我在 project.CloseProject 之前调用 project.SaveProject 之外,我正在执行您的建议,并且我在 c# 中执行此操作。但是,保存调用会引发 COMException。 =/ 我最终会弄清楚是什么导致了这个异常。
    • 检查是否在做project.OpenProject "c:\test.ism", false 以便修改项目。
    • @Alonso 是的,我是。问题是原作者没有使用 IS 2009。因此,在 IS 2009 中打开项目并选择 Save As.. 然后更改几个指针解决了问题。
    • 啊。这比尝试使用命令行生成器好得多。谢谢。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多