La désinstallation d'un composant précédent avant d'installer un nouveau en utilisant VS 2005 Projet d'installation

StackOverflow https://stackoverflow.com/questions/4209123

Question

J'ai une action personnalisée qui devrait exécuter pendant la partie d'installation d'une configuration .msi. J'ai une version précédente qui a été installé à l'aide InstallShield (qui était surpuissant) et voulait passer à la simple VS Setup Proj parce que je ne demande pas tout le contrôle qu'un .isproj fournit. Cependant, installation d'un paquet droit avec mon nouveau .msi semble installer côte à côte avec la version précédente. Voici ce que j'ai trouvé à ce jour:

  1. J'ai mon numéro de produit
  2. J'ai code écrit qui désinstaller la version précédente grâce à la création d'un processus qui utilise MsiExec.exe (code suivre)
  3. Essayé la mise en œuvre l'action personnalisée pour désinstaller lors de l'installation, mais il semble que vous ne pouvez avoir une instance de MsiExec.exe en cours d'exécution à la fois.
  4. Ont été à ce poste (http://stackoverflow.com/questions/197365/vs-setup-project-uninstall-other-component-on-install), ce qui n'a pas aidé.

Code d'action personnalisé:

        //Exe used to uninstall
        string fileName = "MsiExec.exe";

        //Product ID of versions installed using InstallShield
        string productID = "{DC625BCF-5E7B-4FEF-96DD-3CDBA7FC02C1}";

        //Use /x for uninstall and use /qn to supress interface
        ProcessStartInfo startInfo = new ProcessStartInfo(fileName, string.Format("/x{0}", productID));
        startInfo.WindowStyle = ProcessWindowStyle.Normal;
        startInfo.UseShellExecute = false;

        //Start process
        Process uninstallProcess = Process.Start(startInfo);

        //Wait until uninstall is complete
        uninstallProcess.WaitForExit();

Mon espoir est de déployer éventuellement mes .msi via ClickOnce, donc j'espère une option qui rentre dans l'option de déploiement. Actuellement tout est écrit en .NET 2.0 et VS 2005, mais je n'ai .NET 4.0 et VS 2010 disponible pour moi s'il y a une nouvelle option qui fonctionne.

Toute aide est appréciée.

Était-ce utile?

La solution

Je suis en mesure d'installer sur le dessus de l'installation précédente en faisant le code produit de ma configuration le même que le code de l'ancienne version. N'a pas l'aube sur moi pour essayer parce que quand vous créez une nouvelle version du package d'installation, VS vous invite toujours à changer votre code produit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top