检测系统要求
除非安装了 Visual Studio,否则 VSPackage 无法正常工作。 使用 Microsoft Windows Installer 管理 VSPackage 的安装时,可以将安装程序配置为检测是否安装了 Visual Studio。 还可以将其配置为检查系统以满足其他要求,例如,特定版本的 Windows 或特定数量的 RAM。
检测 Visual Studio 版本
若要确定是否安装了 Visual Studio 版本,请验证安装注册表项的值是否为相应文件夹中的 1(REG_DWORD),如下表所示。 请注意,Visual Studio 版本有一个层次结构:
企业
专业版
社区
安装较新版本后,将添加该版本的注册表项以及早期版本。 也就是说,如果安装了 Enterprise 版本, 则安装 密钥设置为 1 (企业版)以及专业版和社区版。 因此,只需为所需的最新版本检查。
注意
在注册表编辑器的 64 位版本中,32 位密钥显示在 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\下。 Visual Studio 密钥位于 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DevDiv\vs\Servicing\ 下。
产品 | 密钥 |
---|---|
Visual Studio Enterprise 2015 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\vs\Servicing\14.0\enterprise |
Visual Studio Professional 2015 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\vs\Servicing\14.0\professional |
Visual Studio Community 2015 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\vs\Servicing\14.0\community |
Visual Studio 2015 Shell (集成和隔离) | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\vs\Servicing\14.0\isoshell |
检测 Visual Studio 何时运行
如果安装 VSPackage 时 Visual Studio 正在运行,则无法正确注册 VSPackage。 安装程序必须检测 Visual Studio 何时正在运行,然后拒绝安装该程序。 Windows Installer 不允许使用表项来启用此类检测。 相反,必须创建自定义操作,如下所示:使用 EnumProcesses
函数检测 devenv.exe 进程,然后设置在启动条件中使用的安装程序属性,或有条件地显示一个对话框,提示用户关闭 Visual Studio。