0

Ok, cela me rend fou.CustomActionData ne semble pas être peuplé ou accessible par mon vbscript

J'ai une autorité de certification qui a besoin de connaître le chemin du fichier INSTALLDIR pour éditer un fichier XML. Par conséquent, je configure une action personnalisée de propriété set qui définit une propriété nommée RemoveAuthTypesNode sur [INSTALLDIR]. Ensuite, j'ai une CA RemoveAuthTypesNode qui est séquencée après SetConfigFolder (une propriété set qui définit installdir sur un chemin de recherche système) dans la séquence d'exécution d'installation, différée dans le contexte système (ne fonctionne pas uniquement avec Deferred Exec).

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

MSI (c) (D4:EC) [16:12:05:314]: PROPERTY CHANGE: Adding RemoveAuthTypesNode property. Its value is 'C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\'.

Les erreurs d'action personnalisés:

Error 1720.There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. Custom action RemoveAuthTypesNode script error -2146827864, Microsoft VBScript runtime error: Object required: 'objXMLDOMNode' Line 9, Column 1, MSI (s) (78:EC) [16:12:23:916]: Product: ASMI User Defined Reports -- Error 1720.There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. Custom action RemoveAuthTypesNode script error -2146827864, Microsoft VBScript runtime error: Object required: 'objXMLDOMNode' Line 9, Column 1,

Ceci est d'échouer parce que le chemin est correct pas l'objet XMLDOM jamais charges. Je le sais parce que si je code le chemin, tout fonctionne correctement.

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

Voici le code de l'action personnalisée. Le msgbox est juste pour le débogage. Il 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. Aide grandement appréciée.

+0

Vous pouvez utiliser les différents boutons pour formater, les gens préfèrent lire les messages formatés. – Fionnuala

Répondre

0

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 (toutes les majuscules). Par conséquent, l'action personnalisée set property devait être séquencée dans la séquence Execute plutôt que dans la séquence d'interface utilisateur. Une fois que j'ai fait ce changement, les données correctes étaient récupérées dans le script.

Il est prévu que si j'ai créé une propriété publique (tous les cas UPPER), cela aurait du travail dans la séquence d'interface utilisateur, mais je n'ai pas testé cette théorie.