【问题标题】:How to have Installshield 2012 iscmdbld.exe command-line tool modify multiple properties如何让 Installshield 2012 iscmdbld.exe 命令行工具修改多个属性
【发布时间】:2011-10-18 21:37:03
【问题描述】:

我正在尝试进行自动构建,并让我的构建服务器将一些命令行选项传递给 iscmdbld.exe,以便在生成的 msi 文件中修改 Windows 安装程序属性。我能够让它与一个属性更改一起工作,但现在我想要更改两个,而第二个似乎不起作用。

目前我正在使用以下选项来构建应用程序:

    -y "2.50.0100" -z "APP_VERSION=2.5.0.0.1" -z "APP_COMMENTS= Customer ID Version 2.5.0.0.1"

似乎不起作用的部分是第二个属性的第二个 -z 命令行选项。有什么想法吗?

附言。我使用了 installshield-2011 标签,因为我无法为 2012 年创建一个标签,这在 2011 年和 2012 年应该基本相同。

【问题讨论】:

    标签: installshield installshield-2011


    【解决方案1】:

    我创建了一个新的 Basic MSI 项目,添加了一个虚拟功能和组件,并在您键入它们时使用多个 -z 参数构建它,它对我来说没有任何问题。我查看了输出的 MSI 的属性表,其值与预期一致。

    您的日志文件中是否有任何错误?

    BYW,IsCmdBld 很好,但是当您进入更复杂的构建场景时,您可能会喜欢使用 InstallShield 的 MSBuild 支持和 COM 自动化接口来运行您的构建。

    例如,我发现做这部分 XML 然后知道将 -z 参数传递给某些 EXE 会容易得多。

    <PropertyGroup>
      <InstallShieldProductVersion>$(MSIProductVersion)</InstallShieldProductVersion>
    </PropertyGroup>
    <ItemGroup>
      <InstallShieldPropertyOverrides Include="$(CustomLongProductVersion)">
        <Property>APP_VERSION</Property>
      </InstallShieldPropertyOverrides>
      <InstallShieldPropertyOverrides Include=" Customer ID Version $(CustomLongProductVersion)">
        <Property>APP_COMMENTS</Property>
      </InstallShieldPropertyOverrides>
    </ItemGroup>
    

    【讨论】:

    • 目前,我无法将它与 MSBuild 集成(商业原因),但我一定会牢记这一点,以备将来使用。就日志文件而言,我只收到两个关于包括 .NET Framework 和 MSXML 的警告。
    • 我继续重新创建我的构建配置并再次运行它并工作。不确定问题到底是什么,但这是通过命令行的正确方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2010-12-18
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多