共用方式為


必須在安裝後執行的命令

如果您透過 .msi 檔案部署擴充功能,您必須在安裝期間執行 devenv /setup,才能讓 Visual Studio 探索您的擴充功能。

注意

本主題中的資訊適用於使用 Visual Studio 2008 和較舊版本尋找 devenv.exe 。 如需如何使用更新版本的 Visual Studio 探索 devenv.exe 的相關資訊,請參閱偵測系統需求

尋找 devenv.exe

您可以使用 RegLocator 資料表和 AppSearch 資料表,將登錄值儲存為屬性,從 Visual Studio 安裝程式寫入的登錄值找到每個版本的 devenv.exe 。 如需詳細資訊,請參閱偵測系統需求

RegLocator 資料表資料列,可從不同版本的 Visual Studio 中尋找 devenv.exe

簽章 根目錄 索引鍵 姓名 類型
RL_DevenvExe_2002 2 SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS EnvironmentPath 2
RL_DevenvExe_2003 2 SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS EnvironmentPath 2
RL_DevenvExe_2005 2 SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS EnvironmentPath 2
RL_DevenvExe_2008 2 SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VS EnvironmentPath 2

對應 RegLocator 資料表資料列的 AppSearch 資料表資料列

屬性 簽章
DEVENV_EXE_2002 RL_DevenvExe_2002
DEVENV_EXE_2003 RL_DevenvExe_2003
DEVENV_EXE_2005 RL_DevenvExe_2005
DEVENV_EXE_2008 RL_DevenvExe_2008

例如,Visual Studio 安裝程式會將 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VS\EnvironmentPath 的登錄值寫入為 C:\VS2008\Common7\IDE\devenv.exe,安裝程式必須執行可執行檔的完整路徑。

注意

因為 RegLocator 資料表的 [類型] 資料行是 2,所以不需要在 [簽章] 資料表中指定其他版本資訊。

執行 devenv.exe

在安裝程式中執行 AppSearch 標準動作之後,AppSearch 資料表中的每個屬性都有一個值,指向對應版本的 Visual Studio devenv.exe 檔案。 如果沒有指定的登錄值,因為未安裝該版本的 Visual Studio,則指定的屬性會設定為 null。

Windows Installer 支援執行屬性透過自訂動作類型 50 指向的可執行檔。 自訂動作應包含指令碼內執行選項 msidbCustomActionTypeInScript (1024) 和 msidbCustomActionTypeCommit (512),以確保 VSPackage 已在將 VSPackage 整合到 Visual Studio 之前成功安裝。 如需詳細資訊,請參閱 CustomAction 資料表自訂動作指令碼內執行選項

類型 50 的自訂動作會將包含可執行檔案的屬性指定為 [目標] 資料行中 [來源] 資料行和命令行引數的值。

要執行 devenv.exe 的 CustomAction 資料表資料列

動作 類型 來源 Target
CA_RunDevenv2002 1586 DEVENV_EXE_2002 /setup
CA_RunDevenv2003 1586 DEVENV_EXE_2003 /setup
CA_RunDevenv2005 1586 DEVENV_EXE_2005 /setup
CA_RunDevenv2008 1586 DEVENV_EXE_2008 /setup

自訂動作必須撰寫到 InstallExecuteSequence 資料表中,以排定這些動作在安裝期間執行。 如果系統上未安裝該版本的 Visual Studio,請使用 Condition 資料行中每個資料列中的對應屬性,以防止執行自訂動作。

注意

Null 值屬性會在條件中使用時評估為 False

每個自訂動作的 Sequence 資料行值取決於您 Windows Installer 套件中的其他順序值。 順序值應該讓 devenv.exe 自訂動作盡可能接近 InstallFinalize 標準動作之前執行。

可排定 devenv.exe 自訂動作的 InstallExecuteSequence 資料表

動作 Condition 序列
CA_RunDevenv2002 DEVENV_EXE_2002 6602
CA_RunDevenv2003 DEVENV_EXE_2003 6603
CA_RunDevenv2005 DEVENV_EXE_2005 6605
CA_RunDevenv2008 DEVENV_EXE_2008 6608