CustomActionDataにvbscriptが入力されていないか、アクセスできないようです
-
22-07-2019 - |
質問
さて、これは私を夢中にさせています。
XMLファイルを編集するためにINSTALLDIRのパスを知る必要があるCAがあります。
したがって、RemoveAuthTypesNodeという名前のプロパティを[INSTALLDIR]に設定するset propertyカスタムアクションを設定します。次に、システムコンテキストで遅延インストール実行シーケンスでSetConfigFolder(installdirをシステム検索パスに設定するsetプロパティ)の後にシーケンスされたRemoveAuthTypesNode CAがあります(Deferred Execでも動作しません)。
ログでRemoveAuthTypesNodeが設定されていることがわかります:
MSI(c)(D4:EC)[16:12:05:314]: プロパティの変更:追加 RemoveAuthTypesNodeプロパティ。その 値は 'C:\ Program Files \ Microsoftです SQL Server \ MSRS10.MSSQLSERVER \ Reporting Services \ ReportServer \ '。
カスタムアクションエラー:
エラー1720.に問題があります このWindowsインストーラパッケージ。 A このインストールに必要なスクリプト completeを実行できませんでした。接触 サポート担当者またはパッケージ ベンダー。カスタムアクション 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カスタムアクションに指定されたプロパティを設定するカスタムアクションは、プライベートプロパティを設定していました(すべて大文字ではありません)。そのため、setプロパティのカスタムアクションは、UIシーケンスではなく、実行シーケンスでシーケンス化する必要がありました。この変更を行うと、スクリプトで正しいデータが取得されました。
パブリックプロパティ(すべて大文字)を作成した場合、UIシーケンスで動作するはずですが、その理論はテストしませんでした。