我已成功将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独立版本后需要进行任何安装后设置,请有人告诉我。
我在几年内没有使用过IS,但这里有一些应该有用的提示。
1)SAB将自动化界面公开为可选的安装功能。它可能没有安装。
2)自动化接口仅支持32位。尝试从64位进程使用它时会出错。 (对于TFS构建,我选择x86 msbuild平台)。
3)您应该能够在同一个构建计算机上安装不同版本的SAB。 (或者更好地创建不同类别的机器。)
4)我喜欢在尝试新版本的InstallShield时设置并行构建。您应该能够将.ISM保留在旧架构中并使用两个引擎构建它。 (较新的SAB将在构建期间升级shema。)一旦所有内容都检出,您可以将.ISM更新到最新版本的InstallSield。
如果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"=""