热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

InstallShieldAutomation无法创建对象

如何解决《InstallShieldAutomation无法创建对象》经验,为你挑选了1个好方法。

我正在使用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

现在,我们已经升级到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() + "}"
$oISM.SaveProject(); $oISM.CloseProject(); $oISM = $null

但是,尽管这些人说应该这样做,但是这也不起作用:https : //community.flexerasoftware.com/showthread.php? 190769-Automation-using-Powershell http://blogs.flexerasoftware.com/installtalk/2011/01/getting -started-with-installshield-automation-and-powershell.html

当我使用32位Powershell时,出现以下错误:

new-object:由于以下错误,无法从IClassFactory创建具有CLSID {78D393F9-76E3-438C-9CAB-6664EF5FE1F2}的COM组件实例:800a801d HRESULT异常:0x800A801D。

如果只运行vbs而没有cmd提示符,我还会在弹出框中看到800A801D的错误。

我怎样才能解决这个问题?我想使用Powershell,但此时VBS修复也会有所帮助。我已经尝试了所有我能想到的东西,谷歌说我做得正确(32位powershell / cmd,注册dll,创建对象等)。



1> Christopher ..:

您是否安装了自动化界面?通常,它是一项可选功能,在安装InstallShield时会设置为不存在。


推荐阅读
author-avatar
秀珍冠秋晓雯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有