Удаление предыдущего компонента перед установкой нового с помощью VS 2005 Setup Project - PullRequest
1 голос
/ 18 ноября 2010

У меня есть настраиваемое действие, которое должно выполняться во время части установки .msi. У меня есть предыдущая версия, которая была установлена ​​с помощью InstallShield (которая была излишней) и хотела перейти на более простой VS Setup Proj, потому что мне не требуется весь контроль, который предоставляет .isproj. Тем не менее, прямая установка с моей новой .msi, кажется, устанавливается рядом с предыдущей версией. Вот что я узнал до сих пор:

  1. У меня есть идентификатор продукта
  2. Я написал код, который удалит предыдущую версию путем создания процесса, использующего MsiExec.exe (код будет следовать)
  3. Попытка реализовать настраиваемое действие для удаления во время установки, но, похоже, одновременно можно запустить только один экземпляр MsiExec.exe.
  4. Был на этом посту (/128488/proekt-ustanovki-vs-udalit-drugoi-komponent-pri-ustanovke),, который не помог.

Код пользовательского действия:

        //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();

Я надеюсь в конечном итоге развернуть мой .msi через ClickOnce, поэтому я надеюсь на вариант, который будет соответствовать варианту развертывания. В настоящее время все написано на .NET 2.0 и VS 2005, но у меня есть .NET 4.0 и VS 2010, доступные для меня, если есть новая опция, которая работает.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 18 ноября 2010

Я смог установить поверх предыдущей установки, сделав код продукта моей установки таким же, как и код более старой версии.Мне не приходило в голову попробовать это, потому что при создании новой версии установочного пакета VS всегда предлагает вам изменить код продукта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...