偵測系統需求
除非在安裝 Visual Studio,VSPackage 無法發揮功能。 當您使用 Microsoft Windows Installer 來管理您的 VSPackage 安裝時,您就可以自動偵測是否已安裝 Visual Studio。 安裝程式也可以檢查其他的需求,例如特定的 Windows 版本或特定 RAM 數量的系統。 您也可以設定安裝程式,以便使用啟動條件來取消安裝,如果不符合 VSPackage 的需求。
偵測與服務機碼
登錄中的偵測子機碼讓您能判斷是否已在電腦上安裝 Visual Studio 產品。 服務子機碼讓您偵測是否已安裝產品的版本更新服務。
下表列出不同的 Visual Studio 產品偵測子機碼。
在表格中,LCID 代表您安裝環境的地區設定 ID (LCID)。 如需有效 LCID 的清單,請參閱 MSDN 網站上的 Microsoft 指派的地區設定 ID (英文)。
在列出的子機碼中,dword:00000001 表示 true,而 dword:00000000 表示 false。
產品 |
機碼 |
---|---|
視覺 Studio2010 精簡化的極致 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VS\Servicing\10.0\VSTSCore\$ (時間差異LCID) |
視覺化的 Studio2010 收費 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VS\Servicing\10.0\VSTDCore\$ (時間差異LCID) |
Visual Studio2010 專業版 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VS\Servicing\10.0\PROCore\$ (時間差異LCID) |
Microsoft VisualStudio 2010 Shell(Integrated) |
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版本中,使用下列的元件識別碼 CompLocator 表中的 Windows 安裝程式封裝。
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_ 的資料行的值可以是任何名稱,但是 CompLocator 和 AppSearch 資料表中的 Signature_ 值必須相符。 如果未安裝適當的 Visual Studio 版本,連結到您的元件定位屬性會是 NULL。 如果屬性為 NULL,則可根據屬性測試條件為 false。
偵測 Visual Studio 的程式語言
如果您的 VSPackage 要求特定的 Visual Studio 的程式設計語言,請使用下列的 CompLocator 資料列和適當 AppSearch 列來偵測是否安裝的語言特定版本的 Visual Studio。
若要偵測是否視覺化的 C# 安裝 CompLocator 資料表的資料列
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 |
若要偵測是否安裝 Visual c + + 的 CompLocator 資料表資料列
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 |
若要偵測是否已安裝 Visual Basic CompLocator 資料表的資料列
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 版本
您的套件載入金鑰強制使用 Visual Studio 您 VSPackage 所需的最小版本,但您也可以偵測出在安裝的版本。 如需詳細資訊,請參閱 VSPackage Load Keys。
![]() |
---|
套件載入金鑰,並不需要 Visual Studio 2010 VSPackages。 |
防止 VSPackage 所安裝,並顯示說明訊息提供較佳的使用者經驗,比讓 VSPackage 安裝,並且無法運作。 使用下列 RegLocator 表格的列和適當 AppSearch 資料表的資料列來啟用 Windows 安裝程式來設定條件式測試,您可以使用的屬性。
RegLocator 資料表的資料列來偵測 Visual Studio 版本
Signature_ |
Root |
機碼 |
名稱 |
型別 |
---|---|---|---|---|
RL_2002_Professional |
2 |
SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\Pro |
ProductDir |
0 |
RL_2002_Enterprise |
2 |
SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\Ent |
ProductDir |
0 |
RL_2003_Professional |
2 |
SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS\Pro |
ProductDir |
0 |
RL_2003_EnterpriseDeveloper |
2 |
SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS\Ent |
ProductDir |
0 |
RL_2003_EnterpriseArchitect |
2 |
SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS\Arch |
ProductDir |
0 |
RL_2005_Standard |
2 |
SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS\Std |
ProductDir |
0 |
RL_2005_Professional |
2 |
SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS\Pro |
ProductDir |
0 |
RL_2005_TeamArchitect |
2 |
SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS\VSTA |
ProductDir |
0 |
RL_2005_TeamDeveloper |
2 |
SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS\VSTD |
ProductDir |
0 |
RL_2005_TeamSuite |
2 |
SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS\VSTS |
ProductDir |
0 |
RL_2005_TeamTest |
2 |
SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS\VSTT |
ProductDir |
0 |
RL_2005_VSTO |
2 |
SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS\VSTO |
ProductDir |
0 |
偵測執行 Visual Studio 時
您的 VSPackage 不會登錄正確如果在安裝 VSPackage 時,正在執行 Visual Studio。 安裝程式必須偵測執行 Visual Studio,然後再拒絕安裝程式。 Windows 安裝程式不允許您啟用這類偵測時,用於表格項目。 相反地,您必須建立自訂的動作,如下: 使用EnumProcesses函式來偵測 devenv.exe 處理序中,並接著設定用在啟動條件,或有條件地執行安裝程式屬性會顯示一個對話方塊,提示使用者關閉 Visual Studio。
取消安裝程式,使用 [啟動條件
如果不符合任何您 VSPackage 的需求,您可以使用 Windows Installer 封裝 LaunchCondition 資料表,取消安裝。 LaunchCondition 表格有一列的每一個啟動條件,而且要為每個不符合的條件顯示一則訊息。 下表列出使用 Windows Installer 系統屬性和自訂的偵測屬性中設定的更早版本的 LaunchCondition 資料表資料列。
![]() |
---|
註冊 VSPackage,則需要撰寫登錄值的作用中計時間索引鍵,因為 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 |
安裝這個 VSPackage 之前,請關閉 Visual Studio。 |
特殊權限 |
若要安裝此 VSPackage,提升權限的使用者權限是必要的。 |
![]() |
---|
若您採用 AppSearch 資料表,以設定您想要使用 LaunchCondition 資料表中的屬性,就必須 LaunchConditions 之前 AppSearch 標準動作出現在 InstallUISequence InstallExecuteSequence 資料表及。 |