|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() ![]() Inscription : avril 2002 Messages : 510 ![]() |
Bonjour à tous.
J'ai un gros problème avec l'installation d'un des logiciels sur lequel je travaille. Un de mes clients utilise ZenWorks de Novell pour déployer mon application. Il utilise le programme d'installation que je lui fourni pour installer le logiciel sur un poste standard (master) et se sert de ZenWorks pour réaliser un snap (je crois que c'est comme cela que ça s'appelle) pour déployer le logiciel sur tous ses postes clients. Le problème est que mon programme d'installation recense de nombreuses dll COM. Ce recensement se passe bien et les clés du registre sont bien créées, mais lors du déploiement du "snap", il en manque certaines. On dirait que ZenWorks "oublie" certaines clés (de HKEY_LOCAL_MACHINE et de HKEY_CLASSES_ROOT). Est-ce que quelqu'un a déjà vu ça ou aurait une quelconque piste à me proposer ? |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() ![]() Inscription : avril 2002 Messages : 510 ![]() |
Bon, je me répond moi-même.
Je crois avoir compris ce qu'il se passe. Ce n'est pas réellement un problème lié à ZenWorks mais au mode de déploiement à base de snapshot (modifications repérées entre le système avant installation et après installation). Ce qui semble se passer dans mon cas c'est que lors de la création d'un snapshot d'une version n, le pc qui sert de master ne contient pas mes programmes. Par contre, les pc sur lesquels le snapshot est appliqué contiennent déjà une verion n-1 des programmes. Ors, les clés de registre permettant à COM de localiser les dll contiennent les chemin sous forme 8.3 (noms courts). Le problème est que le snapshot ne tient pas compte des différences qui peuvent intervenir au niveau du nom court des dll. On se retrouve donc avec des clés qui contiennent des chemins erronés (vers les mauvais fichiers). Voici un exemple : Imaginons que j'installe une application quelconque qui contient une dll appelée "mabibliothèque.dll" dans un répertoire "c:\appli". Sur le pc master on a donc un fichier appelé "c:\appli\mabibl~1.dll" (sous sa forme courte) et une clé de registre HKEY_CLASSES_ROOT\CLSID\{...}\InprocServer32 contenant la valeur par défaut "c:\appli\mabibl~1.dll". Jusque là tout va bien. Maintenant prenons la machine réelle et imaginons qu'elle contienne déjà un fichier appelé "c:\appli\mabibliodetest.dll". Le nom court de ce fichier est "c:\appli\mabibl~1.dll". Cela correspond au nom recensé sur le master. Si j'installe le snapshot, je me retrouve avec un fichier "c:\appli\mabibl~2.dll" qui correspond à "mabibliotheque.dll" alors que la clé de registre contient toujours un chemin vers "c:\appli\mabibl~1.dll". Du coup lors de l'utilisation des coclasses correspondantes j'ai un message d'erreur plus ou moins facile à comprendre. Voila, j'espère que cette expérience peut profiter à d'autres. Si vous avez un avis différent sur la question, n'hésitez pas à poster une réponse. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com