Pergunta

Ok, isso está me deixando louco.

Eu tenho um CA que precisa saber o caminho do INSTALLDIR Para editar um arquivo XML.

Então, eu configurar uma propriedade de ação personalizada conjunto que define uma propriedade chamada RemoveAuthTypesNode para [INSTALLDIR]. Então eu tenho uma CA RemoveAuthTypesNode que é sequenciada após SetConfigFolder (a propriedade conjunto que define INSTALLDIR a um sistema procurou caminho) na instalação Executar Seqüência, diferidos no contexto do sistema (não funciona quando apenas diferidos Exec quer).

No registo vejo que RemoveAuthTypesNode está definido:

MSI (c) (D4: CE) [16: 12: 05: 314]: Altere a propriedade: Adicionando propriedade RemoveAuthTypesNode. Está valor é 'C: \ Program Files \ Microsoft SQL Servidor \ Reporting MSRS10.MSSQLSERVER \ Services \ ReportServer \'.

Os erros de ação personalizada:

Erro 1720.There é um problema com este pacote do Windows Installer. UMA script necessário para esta instalação seja completa não pôde ser executado. Contato o pessoal de suporte ou pacote fornecedor. ação personalizada erro de script RemoveAuthTypesNode -2146827864, Microsoft VBScript tempo de execução erro: objeto necessário: 'ObjXMLDOMNode' Linha 9, coluna 1, MSI (S) (78: EC) [16: 12: 23: 916]: produto: Relatórios definidos ASMI do usuário - erro 1720.There é um problema com este pacote Windows Installer. Um roteiro necessário para esta instalação seja concluída não pôde ser executado. Contacte o seu apoio pessoal ou o fornecedor do pacote. personalizadas script de ação RemoveAuthTypesNode erro -2146827864, Microsoft VBScript erro de execução: objeto necessário: 'ObjXMLDOMNode' Linha 9, coluna 1,

Este está a falhar porque o caminho não é correcta para que o objeto XMLDOM nunca cargas. Eu sei disso porque se eu codificar o caminho tudo funciona bem.

Além disso, quando eu procurar o registo para CustomActionData eu esperava que seria lá como sendo definido.

Aqui está o código da ação personalizada. O msgbox é apenas para depuração. É sempre exibindo nada.

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

O que estou fazendo de errado? Eu tenho certeza que é algo simples estúpido. Ajuda muito apreciada.

Foi útil?

Solução

A ação personalizada que define a propriedade nomeado para a ação personalizada vbscript estava montando uma propriedade privada (não todas as letras maiúsculas). Assim, a ação personalizada propriedade conjunto teve que ser seqüenciado na seqüência de execução, em vez da seqüência UI. Uma vez eu fiz essa mudança os dados corretos estava sendo recuperada no script.

Espera-se se eu ter feito uma propriedade pública (todas as letras maiúsculas) que teria trabalho sendo na seqüência UI, no entanto, eu não testar essa teoria.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top