1

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

  1. У меня есть код продукта
  2. Я написал код, который будет деинсталлировать предыдущую версию через создание процесса, который использует MsiExec.exe (код будет следовать)
  3. Пробовал выполнить пользовательские действия для удаления во время установки, но кажется, что вы можете иметь только один экземпляр MsiExec.exe за один раз.
  4. Был на этом посту (http://stackoverflow.com/questions/197365/vs-setup-project-uninstall-other-component-on-install), который не помог.

код пользовательских действий:

 //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 для меня, если есть новый вариант, который работает.

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

ответ

0

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