【问题标题】:CustomActionData does not seem to be populated or accessable by my vbscript我的 vbscript 似乎没有填充或访问 CustomActionData
【发布时间】:2010-12-11 10:17:34
【问题描述】:

好吧,这快把我逼疯了。

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

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

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

MSI (c) (D4:EC) [16:12:05:314]: 物业变更:添加 RemoveAuthTypesNode 属性。它的 值为 'C:\Program Files\Microsoft SQL 服务器\MSRS10.MSSQLSERVER\报告 服务\ReportServer\'。

自定义操作错误:

错误 1720。有问题 此 Windows 安装程序包。一种 此安装所需的脚本 完成无法运行。接触 您的支持人员或包裹 小贩。自定义动作 RemoveAuthTypesNode 脚本错误 -2146827864,Microsoft VBScript 运行时错误:需要对象: 'objXMLDOMNode' 第 9 行,第 1 列,MSI (s) (78:EC) [16:12:23:916]:产品: ASMI 用户定义报告 -- 错误 1720.此 Windows 安装程序包有问题。一个脚本 此安装需要完成 无法运行。联系您的支持 人员或包装供应商。风俗 动作 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 installation windows-installer installshield custom-action


【解决方案1】:

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

如果我创建了一个公共属性(全部大写),它可以在 UI 序列中工作,但是,我没有测试这个理论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 2016-05-24
    • 1970-01-01
    • 2016-12-05
    • 2021-05-10
    相关资源
    最近更新 更多