我有一个自定义操作,应该在.msi安装的安装部分执行。我有一个使用InstallShield安装的先前版本(这是一种矫枉过正),并希望转移到更简单的VS Setup Proj,因为我不需要.isproj提供的所有控件。但是,使用我的新.msi进行直接安装似乎与先前版本并排安装。这是我到目前为止所发现的:
自定义操作代码:
//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();
我希望最终通过ClickOnce部署我的.msi,所以我希望有一个适合部署选项的选项。目前一切都是用.NET 2.0和VS 2005编写的,但如果有新选项可用,我确实可以使用.NET 4.0和VS 2010.
感谢任何帮助。
答案 0 :(得分:0)
通过使我的设置的产品代码与旧版本的代码相同,我能够安装在之前安装的顶部。我没有尝试过,因为当您创建新版本的安装程序包时,VS总是会提示您更改产品代码。