Domanda

Ok, questo mi sta facendo impazzire.

Ho una CA che deve conoscere il percorso di INSTALLDIR per modificare un file XML.

Quindi, ho impostato un'azione personalizzata set proprietà che imposta una proprietà denominata RemoveAuthTypesNode su [INSTALLDIR]. Quindi ho una CA RemoveAuthTypesNode che è sequenziata dopo SetConfigFolder (una proprietà set che imposta installdir su un percorso cercato dal sistema) nella sequenza di installazione di Execute, differita nel contesto di sistema (non funziona solo con Deferred Exec).

Nel registro vedo che RemoveAuthTypesNode è impostato:

  

MSI (c) (D4: EC) [16: 12: 05: 314]:   CAMBIAMENTO IMMOBILE: Aggiunta   Proprietà RemoveAuthTypesNode. Suo   il valore è 'C: \ Programmi \ Microsoft   SQL   Server \ MSRS10.MSSQLSERVER \ Reporting   Services \ ReportServer \'.

Gli errori di azione personalizzati:

  

Errore 1720. Si è verificato un problema con   questo pacchetto di Windows Installer. UN   script richiesto per questa installazione su   non è stato possibile eseguire complete. Contatto   il personale di supporto o il pacchetto   fornitore. Azione personalizzata   Errore dello script RemoveAuthTypesNode   -2146827864, Errore di runtime di Microsoft VBScript: Oggetto richiesto:   'objXMLDOMNode' Riga 9, colonna 1, MSI   (s) (78: CE) [16: 12: 23: 916]: Prodotto:   Rapporti definiti dall'utente ASMI - Errore   1720. Si è verificato un problema con questo pacchetto di Windows Installer. Un copione   necessario per completare l'installazione   non può essere eseguito. Contatta il tuo supporto   personale o venditore di pacchetti. costume   azione Script RemoveAuthTypesNode   errore -2146827864, Microsoft VBScript   errore di runtime: oggetto richiesto:   'objXMLDOMNode' Riga 9, colonna 1,

Non funziona perché il percorso non è corretto, quindi l'oggetto XMLDom non viene mai caricato. Lo so perché se hardcode il percorso tutto funziona bene.

Inoltre, quando cerco CustomActionData nel registro, mi aspettavo che fosse presente come impostato.

Ecco il codice dell'azione personalizzata. Msgbox è solo per il debug. Non mostra sempre nulla.

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

Cosa sto facendo di sbagliato? Sono sicuro che sia qualcosa di semplice stupido. Aiuto molto apprezzato.

È stato utile?

Soluzione

L'azione personalizzata che imposta la proprietà denominata per l'azione personalizzata vbscript stava impostando una proprietà privata (non tutta in maiuscolo). Quindi, l'azione personalizzata della proprietà set doveva essere sequenziata nella sequenza Execute anziché nella sequenza UI. Dopo aver apportato questa modifica, i dati corretti venivano recuperati nello script.

Si prevede che se avessi creato una proprietà pubblica (tutto il caso UPPER) avrebbe funzionato nella sequenza dell'interfaccia utente, tuttavia non ho testato questa teoria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top