2009-08-21 13 views
2

Nous avons Visual Studio 2008, installation et déploiement, projet d'installation qui installe des fichiers minimal et exécute certaines actions personnalisées. Nous avons également plusieurs projets de module de fusion que le projet d'installation déploie. Chaque module de fusion possède un dossier reciblable de module avec des sous-dossiers uniques sur lesquels sont installés différents composants.Module de fusion laissant des fichiers pendant la désinstallation

Le problème que nous rencontrons est que lors d'une désinstallation du projet d'installation, les fichiers qui ont été déployés par le projet d'installation sont entièrement supprimés du disque dur; mais fichiers qui ont été déployés par les modules de fusion ne sont pas supprimés du tout.

De plus, si après avoir désinstallé les fichiers déployés par le module de fusion existent toujours sur le disque dur, l'installation du projet d'installation n'écrase pas les fichiers déployés par le module de fusion.

Nous avons des résultats acceptables:

1) faire en sorte que les fichiers déployés du module de fusion sont supprimées lors de la désinstallation 2) Autorisez les fichiers déployés par le module de fusion pour être remplacé lors d'une nouvelle installation

Toute réflexion sera apprécié!

Répondre

1

C'est peut-être pas la réponse que vous espériez, mais il est une pensée qui pourrait vous aider ...

Question: Devez-vous vraiment utiliser les modules de fusion? L'idée des HSH est géniale, mais en pratique, ils ne fonctionnent pas aussi bien que vous le souhaiteriez. Au lieu de cela, l'intégration de MSI complets est souvent plus simple car (a) ils peuvent être installés et validés avant le début de l'installation de l'application, (b) ils conservent le contrôle de leur propre version (vous pouvez les mettre à jour). version suivante), (c) vous pouvez les désinstaller (et tous leurs fichiers) avec votre processus de désinstallation, et plus encore. Pour les bibliothèques Microsoft qu'ils fournissent en tant que MSMS, il existe toujours une version MSI du redistribuable que vous pouvez utiliser à la place. Ou avez-vous fait les modules de fusion vous-même/ves, pour cette application? Dans ce cas, ils seraient meilleurs en tant que composants dans votre MSI, car ils suivraient le même processus d'installation et de désinstallation que le reste. Et si vous avez plusieurs applications qui utilisent les mêmes composants, vous pouvez leur donner les mêmes ID de composant et ils finissent par partager (par exemple, lorsque vous avez 2 applications avec un composant partagé installé et que vous en désinstallez l'un, les composants partagés restera tant que l'autre application reste installée).

+0

vrai, l'utilisation de msi chaînés est une bonne solution ... nous avons juste beaucoup investi dans les modules de fusion à ce stade. si le pire se produit, nous finirons probablement par utiliser cette méthode. – danlash

1

J'ai rencontré un problème similaire dans le passé, à savoir en raison d'entrées de problème dans la clé de Registre [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls]. Voir si l'un des fichiers de votre module de fusion sont répertoriés après la désinstallation, le nombre de références peut être désactivé et Windows Installer pense que les fichiers doivent rester car ils sont utilisés par une autre application.

En général, cela est dû à la modification de l'état 'Partagé' du composant entre les versions d'installation ou à l'utilisation de MSIZAP (Windows Installer Cleanup) qui n'effectue pas de réajustement lors de la purge d'un package.

+0

J'ai vérifié le registre. aucun de nos fichiers n'y est répertorié. J'ai également vérifié nos modules de fusion et aucun de nos fichiers n'est marqué comme partagé ou hérité. Merci pour la suggestion. – danlash