J'ai un programme d'installation MSI qui installe le produit et ce produit contient plusieurs DLL d'API largement utilisées. Ces dll peuvent être chargés dans des processus que je ne peux pas contrôler pendant la mise à niveau (par exemple, je ne peux pas demander à l'utilisateur de fermer explorer.exe ou svchost). Ainsi, lors de la mise à niveau MSI, ces DLL sont verrouillées et ne peuvent pas être mises à niveau sans redémarrage. Je dois le rendre évolutif sans redémarrer. Ces DLL d'API sont très stables et il est acceptable de laisser les anciennes copies fonctionner dans les anciens processus lorsque les nouvelles versions de ces DLL seront chargées dans les nouveaux processus en cours d'exécution. Ainsi, quand nous n'avons pas utilisé MSI, nous avons simplement utilisé le fichier trick - renommer standard, le marquer pour le supprimer au redémarrage, écrire un nouveau fichier.Comment indiquer à MSI de mettre à niveau les DLL verrouillées et d'éviter les redémarrages
Quelle est la meilleure façon de le faire dans MSI? Dois-je créer une action personnalisée qui fera l'affaire standard? Ou peut-être MSI a une meilleure façon de le faire?
Merci!
Ce n'est pas tout à fait vrai. Comme je l'ai dit dans le premier post, je peux laisser mon vieux dll chargé dans les vieux processus. Et seuls les nouveaux utiliseront une nouvelle DLL. – Oleg
Vous voulez dire que les nouvelles DLL utilisent un nouveau nom et de nouveaux hooks? Hmm ... – ewall