2009-10-20 3 views
0

Mon programme .NET en C# fait référence à une DLL propriétaire, que mon programme utilise pour accéder à son API. Tout fonctionne très bien .. cependant, quand je désinstalle mon programme (ajouter/supprimer des programmes), le programme d'origine (pas le mien) ne fonctionnera plus car il semble que le fichier DLL a été déréférencé ou non par Windows/.Net.Protéger les DLL partagées d'être désenregistrées/différées lors de la désinstallation?

Je suis allé aussi loin que copier le fichier DLL dans un nouveau répertoire, et référencer ma solution C# à ce nouvel emplacement, mais la même chose arrive. Je suis certain qu'il a quelque chose à voir avec l'identité de la DLL dans le GAC ou le registre. J'utilise Visual Studio 2008, et comme je l'ai mentionné, ma solution est en C#. Quelqu'un peut-il m'aider à configurer ma solution afin qu'une référence à une DLL crée une nouvelle copie/inscription localisée, de sorte que lorsque mon programme est désinstallé, il n'interfère pas avec la DLL du fournisseur d'origine? Je suis un codeur vétéran, mais un utilisateur débutant sous Windows .Net.

+0

Comment déployez-vous votre application? Utilisez-vous un projet d'installation dans VS pour créer un fichier MSI? ClickOnce? – ParmesanCodice

Répondre

0

Utilisez-vous ClickOnce pour installer votre application? Si c'est le cas, marquez la DLL en tant que «prérequis». Sinon, vous pouvez installer une version plus récente de la DLL sur l'original.

+0

Non, ce n'est pas une application ClickOnce. J'ai eu cette question de déréférencement de DLL s'il s'agit d'une application de console C# ou un service C#. Lorsque je désinstalle l'un ou l'autre, le programme du fournisseur d'origine est interrompu car la DLL a été désinscrite. J'essaye chaque permutation essayant maintenant de bidouiller à une solution, telle que faire les références "isolées" dans la liste de références de solution de service, et la rendant "permanente" dans la liste de références d'installateur de service. Je suis juste à la recherche des meilleures pratiques pour isoler une nouvelle copie de la DLL afin qu'elle ne gâche pas l'original lors de la désinstallation de MY app. Merci! – Patsy

Questions connexes