检测系统要求

,除非安装 VSPackage,不能正常运行 Visual Studio。 当您使用的是 Microsoft Windows Installer 管理您的 VSPackage 中安装时,可以自动检测是否安装 Visual Studio。 此安装程序还可以检查系统其他要求,例如, windows 或特定数量的 RAM 的特定版本。 ,如果 VSPackage 要求不匹配,也可以配置该安装程序使用启动条件取消安装。

检测和维护项

在注册表中检测子项使您能确定 Visual Studio 产品是否已在计算机上安装。 维护子项使您能检测是否已安装产品的 service release。

下表列出了不同的 Visual Studio 产品检测子项。

在表中, LCID 表示区域设置 ID (lcid) 安装的。 有关有效 LCID 的列表,请参见 Microsoft 分配的区域设置 ID MSDN 网站上。

在列表中的子级,大小: 00000001 表示为 true 和大小: 错误 00000000 个的平均值。

产品

最终可视化的 Studio2010

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ DevDiv \ VS \ servicing \ 10.0 \ VSTSCore \ $ (变种LCID)

visual Studio2010 premium

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ DevDiv \ VS \ servicing \ 10.0 \ VSTDCore \ $ (变种LCID)

visual Studio2010 professional

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ DevDiv \ VS \ servicing \ 10.0 \ PROCore \ $ (变种LCID)

Microsoft VisualStudio 2010 Shell (集成)

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ DevDiv \ VS \ servicing \ 10.0 \ IntShell \ $ (变种LCID)

备注

在 64 位 windows 操作系统上,键启动如下所示:HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ DevDiv \ VS \ servicing \ 10.0 \

检测 Visual Studio 的早期版本

多个 Visual Studio 版本在同一台计算机上安装。 有关更多信息,请参见 支持多个 Visual Studio 版本

若要检测 Visual Studio 版本,请使用以下组件 ID 在您的 Windows Installer 包中 CompLocator 表。

CompLocator 表行

Signature_

ComponentID

类型

CL_Devenv_2002

{} 0C4A71DF-5A73-11D3-A520-00A0C9231BA1

1

CL_Devenv_2003

{} 153B059B-B2F4-4B54-9AC3-32BE38E470E1

1

CL_Devenv_2005

{} 320DB690-7979-4015-BD78-A16D7279043B

1

CL_Devenv_2008

{} 9E43F3BB-E7AE-4A97-ACF6-FB864533CC7E

1

使用 AppSearch 表连接 Signature_ 列在 CompLocator 表中到属性值,如下所示。

AppSearch 表行

属性

Signature_

DEVENV_COMP_2002

CL_Devenv_2002

DEVENV_COMP_2003

CL_Devenv_2003

DEVENV_COMP_2005

CL_Devenv_2005

DEVENC_COMP_2008

CL_Devenc_2008

在属性和 Signature_ 列的值可以是任何名称,但是, Signature_ 值。 CompLocator 和 AppSearch 表中必须匹配。 与您的组件定位器链接的属性为 NULL,如果没有安装 Visual Studio 的适当版本。 如果属性为空,则测试条件属性为 false。

检测 Visual Studio 编程语言

如果您的 VSPackage 需要特定 Visual Studio 编程语言,请使用以下 CompLocator 行和相应的 AppSearch 行检测该语言是否为 Visual Studio 的特定版本安装。

CompLocator 表行检测是否安装 Visual C#

Signature_

ComponentID

类型

CL_VCsharp_2002

{} B881292C-F099-11D4-A547-0090278A1BB8

1

CL_VCsharp_2003

{} 6110A574-76CE-45A5-92E8-2E194F20BBF7

1

CL_VCsharp_2005

{} 727833BC-8B4B-4480-B34A-B1A17CFF259B

1

CL_VCSharp_2008

{} 8D70EE8E-1638-40C2-921B-28E52A68A986

1

CL_VCSharp_2010

{} D3246EF0-4F4E-4F81-B4FF-8C716EC0A929

1

CompLocator 表行检测是否安装 Visual C++

Signature_

ComponentID

类型

CL_VCpp_2002

{} 00E21CF5-5361-11D3-A51F-00A0C9231BA1

1

CL_VCpp_2003

{} 1E8D5C4E-0143-4871-9E7E-F04EEF70C3E0

1

CL_VCpp_2005

{} 28A38374-4A68-4562-9AF3-5D7BB96B0461

1

CL_VCpp_2008

{} 35DF9D40-8283-4661-B572-F7EACCAB287C

1

CL_VCpp_2010

{} 82D71315-B841-492E-986E-2660ABD89CD1

1

CompLocator 表行检测是否安装了 Visual Basic

Signature_

ComponentID

类型

CL_VBasic_2002

{} 62EDCDC9-69F4-11D3-A521-00A0C9231BA1

1

CL_VBasic_2003

{} 667F7FE3-3165-41C4-9CF9-F2719ADF0505

1

CL_VBasic_2005

{} F5FDD145-7637-4CA7-90FE-6936A082CEDB

1

CL_VBasic_2008

{} F59EAFC0-6C67-40F2-AE59-85E4CE330A4E

1

CL_VBasic_2010

{} 235875C7-333C-4186-A46F-064431527642

1

检测 Visual Studio 编辑器

您的包打入键强制您的 VSPackage 需要 Visual Studio 的最小编辑器,但是,您可以在安装或检测该编辑器。 有关更多信息,请参见 VSPackage Load Keys

备注

Visual Studio 2010 Vspackage 不需要一个包打入键。

防止 VSPackage 已安装并显示一个说明消息比 VSPackage 安装允许然后不工作提供较好的用户体验。 使用以下 RegLocator 表行,并使 Windows Installer 的相应 AppSearch 表行设置您可以使用的属性条件测试。

RegLocator 检测 Visual Studio 编辑器的表行

Signature_

名称升级过程中或新数据库需要 -ra 参数

类型

RL_2002_Professional

2

software \ Microsoft \ VisualStudio \ 7.0 \ setup \ 用 \ 同意

ProductDir

0

RL_2002_Enterprise

2

software \ Microsoft \ VisualStudio \ \ 的设置 7.0 \ USER1 \ 耳鼻喉部门

ProductDir

0

RL_2003_Professional

2

software \ Microsoft \ VisualStudio \ 7.1 \ setup \ 用 \ 同意

ProductDir

0

RL_2003_EnterpriseDeveloper

2

software \ Microsoft \ VisualStudio \ 7.1 \ setup \ 用 \ 耳鼻喉部门

ProductDir

0

RL_2003_EnterpriseArchitect

2

software \ Microsoft \ VisualStudio \ 7.1 \ CONFIG \ USER1 \ 曲拱

ProductDir

0

RL_2005_Standard

2

software \ Microsoft \ VisualStudio \ 8.0 \ CONFIG \ USER1 \ Std

ProductDir

0

RL_2005_Professional

2

software \ Microsoft \ VisualStudio \ 8.0 \ setup \ 用 \ 同意

ProductDir

0

RL_2005_TeamArchitect

2

software \ Microsoft \ VisualStudio \ 8.0 \ CONFIG \ USER1 \ VSTA

ProductDir

0

RL_2005_TeamDeveloper

2

software \ Microsoft \ VisualStudio \ 8.0 \ CONFIG \ USER1 \ VSTD

ProductDir

0

RL_2005_TeamSuite

2

software \ Microsoft \ VisualStudio \ 8.0 \ CONFIG \ USER1 \ VSTS

ProductDir

0

RL_2005_TeamTest

2

software \ Microsoft \ VisualStudio \ 8.0 \ CONFIG \ USER1 \ VSTT

ProductDir

0

RL_2005_VSTO

2

software \ Microsoft \ VisualStudio \ 8.0 \ CONFIG \ USER1 \ VSTO

ProductDir

0

检测,而 Visual Studio 运行

您的 VSPackage 不会正确注册,则 Visual Studio 运行,即使安装 VSPackage。 此安装程序必须检测 Visual Studio 在运行然后拒绝安装程序。 Windows Installer 不允许您使用表项目启用这样检测。 相反,您必须创建自定义活动,如下所示:使用 EnumProcesses 功能检测该 devenv.exe 进程,方法之一来设置用于启动条件的安装程序属性或有条件地显示提示用户关闭 Visual Studio 的对话框。

移除使用启动条件的设置

如果任何一个您的 VSPackage 的要求不匹配,您可以使用 Windows Installer 包 LaunchCondition 表取消安装。 LaunchCondition 表有一个启动条件和消息的行中显示为不匹配的每个条件。 下表列出了 LaunchCondition 使用 Windows Installer 系统属性和自定义检测属性中设置的表行。

备注

由于注册 VSPackage 需要编写注册表值到 HKEY_LOCAL_MACHINE 键, VSPackage 安装需要更高的用户权限,因此,即使实际运行 VSPackage 不需要提升权限。

示例 LaunchCondition 表行

条件

说明

DEVENV_COMP_2002 或 DEVENV_COMP_2003 或 DEVENV_COMP_2005 或

安装的 DEVENV_COMP_2008

此 VSPackage 需要 Visual Studio。

VersionNT => 500

Windows 2000 是 VSPackage 的最低要求。

不是 VISUAL_STUDIO_RUNNING

关闭 Visual Studio,在安装此 VSPackage 之前。

特权

若要安装此 VSPackage,需要提升用户权限。

备注

如果您依赖 AppSearch 表设置要在 LaunchCondition 表中要使用的属性, AppSearch 标准事件在 InstallUISequence 表和 InstallExecuteSequence 表中必须在 LaunchConditions 前面。

请参见

其他资源

安装 Vspackage 使用 Windows Installer