Хорошо, это сводит меня с ума.
У меня есть центр сертификации, которому нужно знать путь INSTALLDIR для редактирования файла XML.
Итак, я установил настраиваемое действие для свойства set, которое устанавливает свойство с именем RemoveAuthTypesNode в [INSTALLDIR]. Затем у меня есть CA RemoveAuthTypesNode, который секвенируется после SetConfigFolder (свойство set, которое устанавливает installdir для пути поиска в системе) в последовательности «Выполнить установку», отложено в системном контексте (не работает, если также просто отложено выполнение).
В журнале я вижу, что RemoveAuthTypesNode установлен:
MSI (c) (D4: EC) [16: 12: 05: 314]:
ИЗМЕНЕНИЕ НЕДВИЖИМОСТИ: Добавление
Свойство RemoveAuthTypesNode. это
значение равно 'C: \ Program Files \ Microsoft
SQL
Server \ 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
Что я делаю не так? Я уверен, что это просто глупо. Помощь очень ценится.