我正在使用Installshield 2014和2011。正在使用主要升级和自动构建脚本来处理构建。InstallShield是独立的构建版本。对彼此而言。
现在,Windows 2003服务器上的Installshield 2011一切正常。我可以使用自动化界面打开一个项目,更改产品代码(用于主要升级),然后在构建安装程序之前将其保存。
这样的代码在vbs文件中如下所示:
Dim oISM, oGUID
Set oGUID = CreateObject("InstallShield.GUID")
Set oISM = CreateObject("IswiAuto17.ISWiProject")
oISM.OpenProject strInstallShieldProjectFile
oISM.ProductCode = "{" & oGUID.CreateGUID( ) & "}"
oISM.SaveProject : oISM.CloseProject : set oISM = Nothing
Run Code Online (Sandbox Code Playgroud)
现在,我们已经升级到Windows 2012服务器和InstallShield2014。我已经仔细检查过,根据InstallShield,唯一需要的更改是版本号(从17更改为21)。
但是现在没有任何效果。如果我取出代码并将其放入自己的vbs文件中进行测试并运行,我将得到以下信息:
ActiveX组件无法创建对象:“ InstallShield.GUID”
在谷歌上看,我看到这是在64位模式下运行的。。。。我在32位模式下运行cmd提示符。 http://helpnet.flexerasoftware.com/installshield18helplib/AutomationInterface64Bit.htm
我尝试使用以下脚本调用脚本:%WINDIR%\ SYSWOW64 \ cmd.exe / c cscript
如此处建议的那样: 如何在64位计算机上以32位模式运行VBScript?
和其他地方。这没有用,因为我遇到了同样的错误。
我尝试删除该行,因为我确定可以用另一种方式创建Guid,然后重新运行它。
然后在尝试创建项目时得到了此消息:未知的运行时错误:'CreateObject'
谷歌再次出现,我检查了:https : //community.flexerasoftware.com/showthread.php?189788-Automation-error
和其他人。我尝试确保使用regsvr32注册了dll,并说它成功。但是在重新运行后,它给出了相同的错误。
我尝试直接处理InstallShield文档中的命令,以确保没有拼写错误,但又出现了相同的错误。
我什至尝试按此处所述切换“ sw”的大小写: 运行vbscript时Installshield Automation失败,错误是无法创建对象
同样,同样的错误。
我还尝试了切换到Powershell,因为Powershell更容易调试和阅读。
powershell代码很简单,如下所示:
$oIsm = new-object -comobject IswiAuto21.ISWiProject
$oISM.OpenProject("$file")
$oISM.ProductCode = "{" + [guid]::NewGuid() + "}" …Run Code Online (Sandbox Code Playgroud)