Je dois lire l'emplacement du dossier Fichiers temporaires ASP.NET de VBScript dans le cadre d'une tâche de post-installation dans un programme d'installation créé à l'aide d'un projet de déploiement Visual Studio 2008.Comment lire les valeurs de registre 64 bits à partir de VBScript en tant que tâche de post-installation msi?
Je pensais que je ferais quelque chose comme ceci:
Set oShell = CreateObject("Wscript.Shell")
strPath = oShell.RegRead("HKLM\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0\Path")
et concaténer puis strPath avec "\ Temporary ASP.NET Files" et être fait avec elle.
Sur un système x64, cependant, j'obtiens la valeur du WOW6432Node (HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ ASP.NET \ 2.0.50727.0), ce qui me donne le chemin d'accès 32 bits (C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727), mais sur un système x64, je veux en fait le chemin 64 bits, c.-à-d. C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727. Je comprends que cela se produit parce que le fichier .vbs est exécuté en utilisant l'hôte de script 32 bits en raison du processus parent (le programme d'installation) étant lui-même 32 bits.
Comment puis-je exécuter le script en utilisant l'hôte de script 64 bits - ou - comment puis-je lire les valeurs 64 bits même si le script est exécuté en utilisant l'hôte de script 32 bits?
Comment faites-vous, mais de vérifier que la clé, pas une valeur ?? (Ex: voir si "SOFTWARE \ Microsoft \ ASP.NET \ 2.0.50727.0" existe mais pas la valeur "Path" –
@ DaniellePaquette-Harvey: Vous devez appeler ['EnumKey'] (http://msdn.microsoft. com/fr-fr/library/aa390387.aspx) au lieu de 'GetStringValue' (avec les paramètres appropriés) et vérifiez si' oOutParams.ReturnValue' est 0. Voir également les réponses à cette question: [Vérifier si la clé de registre existe] (http : //stackoverflow.com/q/9604276/113116) – Helen