2016-09-26 3 views
0

Mon projet InstallScript 2014 installe notre application sur un PC de bureau ou un PC intégré qui contrôle un instrument industriel. La seule façon de connaître la différence est la présence d'un pilote de périphérique USB unique sur le PC intégré qui est utilisé pour activer le panneau avant de l'instrument - il n'y a évidemment pas de panneau avant sur le bureau.Limitations de InstallScript "Is (FILE_EXISTS, filename)"?

Le code InstallScript dit

if (IS(FILE_EXISTS, "c:\\windows\\system32\\mydriver.sys")) then 
    do instrument stuff 
else 
    do desktop stuff 
endif; 

Le fichier est présent sur l'instrument disque dur dans le répertoire windows \ system32, mais la fonction IS toujours renvoie false.

Je ne comprends pas pourquoi cela échouerait. Le programme d'installation lui-même est exécuté avec des privilèges élevés, mais l'examen du contenu de Win \ Sys32 ne nécessite aucune autorisation spéciale. Je peux voir le fichier à l'aide de Windows Explorer.

Qu'est-ce qui me manque?

Répondre

0

Apparemment, il y a une "magie" au niveau du système de fichiers qui redirige les requêtes entre divers répertoires sur un système Windows 64 bits.

Il semble que tout ce qui doit être fait est

Disable(WOW64FSREDIRECTION); 
do stuff 
Enable(WOW64FSREDIRECTION); 

Voir Targeting 64 bit operating systems with InstallScript Installations