Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的vbscript似乎无法填充或访问CustomActionData_Vbscript_Installation_Windows Installer_Installshield_Custom Action - Fatal编程技术网

我的vbscript似乎无法填充或访问CustomActionData

我的vbscript似乎无法填充或访问CustomActionData,vbscript,installation,windows-installer,installshield,custom-action,Vbscript,Installation,Windows Installer,Installshield,Custom Action,好吧,这让我发疯了 我有一个CA,需要知道INSTALLDIR的路径才能编辑XML文件 因此,我设置了一个set-property自定义操作,将名为RemoveAuthTypesNode的属性设置为[INSTALLDIR]。然后,我有一个RemoveAuthTypesNode CA,它在SetConfigFolder之后排序。一个set属性将installdir设置为安装执行序列中的系统搜索路径,在系统上下文中延迟,当仅延迟执行时也不起作用 在日志中,我看到设置了RemoveAuthTypesN

好吧,这让我发疯了

我有一个CA,需要知道INSTALLDIR的路径才能编辑XML文件

因此,我设置了一个set-property自定义操作,将名为RemoveAuthTypesNode的属性设置为[INSTALLDIR]。然后,我有一个RemoveAuthTypesNode CA,它在SetConfigFolder之后排序。一个set属性将installdir设置为安装执行序列中的系统搜索路径,在系统上下文中延迟,当仅延迟执行时也不起作用

在日志中,我看到设置了RemoveAuthTypesNode:

微星cd4:EC[16:12:05:314]: 属性更改:添加 RemoveAuthTypesNode属性。它的 值为“C:\Program Files\Microsoft” SQL 服务器\MSRS10.MSSQLSERVER\Reporting 服务\报表服务器\'

自定义操作错误:

错误1720。系统存在问题 这是Windows安装程序包。A. 此安装到所需的脚本 无法运行complete。联系 您的支持人员或软件包 小贩自定义操作 RemoveAuthTypesNode脚本错误 -2146827864,Microsoft VBScript运行时错误:需要对象: “objXMLDOMNode”第9行第1列,MSI s 78:EC[16:12:23:916]:产品: ASMI用户定义报告-错误 1720.此Windows Installer软件包有问题。剧本 完成此安装所必需的 无法运行。联系您的支持人员 人员或包装供应商。风俗 操作RemoveAuthTypesNode脚本 错误-2146827864,Microsoft VBScript 运行时错误:需要对象: “objXMLDOMNode”第9行第1列

这是失败的,因为路径不正确,所以XMLDom对象永远不会加载。我知道这一点,因为如果我对路径进行硬编码,一切都会正常工作

另外,当我在日志中搜索CustomActionData时,我希望它会被设置在那里

下面是来自自定义操作的代码。msgbox仅用于调试。它总是什么也不显示

strConfigFile = session.Property("CustomActionData") & "rsreportserver.config"
MsgBox session.Property("CustomActionData")
Set xDoc = CreateObject("Microsoft.XMLDOM")

xDoc.async = False
xDoc.Load(strConfigFile)

set objXMLDOMNode = xDoc.selectSingleNode("//Configuration/Authentication/AuthenticationTypes")
set objParentNode = objXMLDOMNode.parentNode
objParentNode.removeChild(objXMLDOMNode)

xDoc.save(strConfigFile)

Set xDoc = Nothing

我做错了什么?我相信这是一件简单而愚蠢的事情。非常感谢您的帮助。

设置为vbscript自定义操作命名的属性的自定义操作是设置私有属性,而不是全部大写。因此,set属性自定义操作必须在执行序列而不是UI序列中排序。一旦我做了这个更改,就可以在脚本中检索到正确的数据


如果我将一个公共属性设置为大写,它将在UI序列中工作,但是,我没有测试这个理论。

你可以使用各种按钮格式化,人们更喜欢阅读格式化的帖子。