1

我已将 InstallShield 从 2009 独立版本成功升级到 2016 独立版本。目前使用“InstallShield 2016 Standalone build”来构建我的包。在创建软件包之前,我一直检查以验证系统中是否安装了“InstallShield 2016 Standalone build”。下面是 .js 代码。

try
   {
      var testStanAloneBuilder = new ActiveXObject("IswiAuto23.ISWiProject");
      delete testStanAloneBuilder;
   }
   catch (e)
   {
      ErrorExit("ERROR: The required InstallShield Stand Alone Builder is not installed.");
   }

收到的异常错误消息是“自动化服务器无法创建对象”。如果我需要在安装 InstallShield 2016 独立构建后进行任何安装后设置,任何人都可以告诉我。

4

2 回答 2

1

我已经有几年没用过 IS了,但这里有一些提示应该会有所帮助。

1) SAB 将自动化接口公开为可选功能进行安装。它可能没有安装。

2)自动化接口只支持32bit。尝试从 64 位进程中使用它会出错。(对于 TFS 构建,我选择 x86 msbuild platform )。

3) 您应该能够在同一台构建机器上安装不同版本的 SAB。(或者更好地创建不同类别的机器。)

4) 我喜欢在尝试新版本的 InstallShield 时设置并行构建。您应该能够将 .ISM 保留在旧模式并使用两个引擎构建它。(较新的 SAB 将在构建过程中升级 shema。)一旦一切检查完毕,您就可以将 .ISM 更新到最新版本的 InstallSield。

于 2017-01-02T16:19:40.903 回答
0

如果 InstallShield 提供 64 位版本的自动化界面,那就太好了,但在那之前……试试这个。
通过添加这些项来为 InstallShield 自动化对象添加代理注册表项。此 CLSID 用于 IswiAuto23。
如果您安装了不同版本的 InstallShield 自动化对象,则在注册表中搜索匹配的 InstallShield clsid 并相应地更新注册表。

[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{3C44313C-4B47-4C59-BA06-1398FABFCDAD}]

"AppID"="{3C44313C-4B47-4C59-BA06-1398FABFCDAD}"

[HKEY_CLASSES_ROOT\WOW6432Node\AppID\{3C44313C-4B47-4C59-BA06-1398FABFCDAD}]

"DllSurrogate"=""
于 2018-09-06T18:46:11.820 回答