OK,这是驾驶我疯狂。

我有需要知道INSTALLDIR的路径编辑XML文件中的CA。

所以,我设置,设置一个名为RemoveAuthTypesNode为[INSTALLDIR]属性的一组属性的自定义动作。然后,我有SetConfigFolder在安装执行序列,在系统上下文延迟(其设定INSTALLDIR到系统搜索的路径的一组属性)之后进行测序一个RemoveAuthTypesNode CA(当刚刚递延Exec的任一不工作)。

在日志我看到RemoveAuthTypesNode设置:

  

MSI(C)(D4:EC)[16:12:05:314]:   属性更改:添加   RemoveAuthTypesNode财产。它的   值是“C:\ Program Files文件\微软   SQL   服务器\ MSRS10.MSSQLSERVER \报告   服务\的ReportServer \”。

自定义动作错误:

  

错误1720.There是一个问题   这个Windows安装程序包。一种   此安装所需的脚本   完全无法运行。联系   您的支持人员或程序包   供应商。自定义操作   RemoveAuthTypesNode脚本错误   -2146827864,微软VBScript运行时错误:所需的对象:   'objXMLDOMNode' 9行,第1列,MSI   (一个或多个)(78:EC)[16:12:23:916]:产品:   ASMI用户定义的报表 - 错误   1720.There与此Windows安装程序包的问题。脚本   此安装完成需要   无法运行。请联系您的支持   人员或程序包供应商。习惯   行动RemoveAuthTypesNode脚本   错误-2146827864,微软的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的自定义动作被设置私人财产(不是所有大写)的属性的自定义动作。因此,一套属性自定义操作有执行顺序,而不是UI序列进行测序。一旦我在此变化的正确数据是在脚本被检索。

据,如果我做了一个公共属性(全部大写),预计将有工作在UI序列之中,但是,我没有测试这个理论。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top