Question

Ok, ça me rend fou.

J'ai une autorité de certification qui doit connaître le chemin de INSTALLDIR pour modifier un fichier XML.

J'ai donc configuré une action personnalisée pour définir une propriété qui définit une propriété appelée RemoveAuthTypesNode sur [INSTALLDIR]. Ensuite, j'ai une autorité de certification RemoveAuthTypesNode qui est séquencée après SetConfigFolder (une propriété set qui définit installdir sur un chemin recherché du système) dans la séquence d'installation, d'exécution, différée dans le contexte système (ne fonctionne pas uniquement avec Exec différé).

Dans le journal, je constate que RemoveAuthTypesNode est défini:

  

MSI (c) (D4: EC) [16: 12: 05: 314]:   CHANGEMENT DE PROPRIÉTÉ: Ajout   Propriété RemoveAuthTypesNode. Ses   la valeur est 'C: \ Program Files \ Microsoft   SQL   Serveur \ MSRS10.MSSQLSERVER \ Reporting   Services \ ReportServer \ '.

Les erreurs d'action personnalisée:

  

Erreur 1720. Il y a un problème avec   ce package Windows Installer. UNE   script requis pour cette installation   complete n'a pas pu être exécuté. Contact   votre personnel de support ou package   vendeur. Action personnalisée   Erreur de script RemoveAuthTypesNode   -2146827864, erreur d'exécution Microsoft VBScript: Objet requis:   'objXMLDOMNode' ligne 9, colonne 1, MSI   (s) (78: CE) [16: 12: 23: 916]: Produit:   Rapports définis par l'utilisateur ASMI - Erreur   1720.Il y a un problème avec ce package Windows Installer. Un script   requis pour cette installation à compléter   ne pouvait pas être exécuté. Contactez votre support   personnel ou fournisseur de colis. Douane   action script RemoveAuthTypesNode   erreur -2146827864, Microsoft VBScript   erreur d'exécution: objet requis:   'objXMLDOMNode', ligne 9, colonne 1,

Cela échoue parce que le chemin n'est pas correct et que l'objet XMLDom ne se charge jamais. Je le sais parce que si je code le chemin, tout se passera bien.

En outre, lorsque je recherche CustomActionData dans le journal, je m'attendais à ce qu'il soit défini ici.

Voici le code de l'action personnalisée. La msgbox est juste pour le débogage. Il n’affiche toujours rien.

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

Qu'est-ce que je fais mal? Je suis sûr que c'est quelque chose de simple et stupide. Une aide grandement appréciée.

Était-ce utile?

La solution

L'action personnalisée qui définit la propriété nommée pour l'action personnalisée vbscript consistait à définir une propriété privée (pas toutes les majuscules). Ainsi, l'action personnalisée de la propriété set a dû être séquencée dans la séquence Execute plutôt que dans la séquence UI. Une fois cette modification effectuée, les données correctes ont été récupérées dans le script.

On s'attend à ce que si j'ai créé une propriété publique (dans tous les cas UPPER), le travail se fasse dans la séquence de l'interface utilisateur; toutefois, je n'ai pas testé cette théorie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top