我正在为 Visual Studio 2008 编写 VSPackage,并使用 WiX 生成的 Msi 对其进行部署。安装结束时,我根据需要运行“devenv.exe/setup”以使 VS 注意到我的包。但是,如果有任何 Visual Studio 副本正在运行,此命令将不会成功。
目前,我告诉人们他们必须在安装之前关闭 Visual Studio 的所有副本,但我希望它是万无一失的。如果有任何 Visual Studio (devenv.exe) 副本正在运行,我如何检查何时有人运行我的 .msi,并阻止他们安装我的项目?
最佳答案
while(devenvIsRunning()) {} //in main routine of Installer class
static bool devenvIsRunning() //uses this subroutine
{
Process[] procList = Process.GetProcesses();
foreach (Process p in procList)
{
if (p.ProcessName == "devenv")
{
MessageBox.Show("An instance of Visual Studio is still running.\nPlease close all open instances of Visual Studio before continuing.");
return true;
}
}
return false;
}
关于wix - 安装 msi 时如何确保 devenv.exe 未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/710353/