次の方法で共有


インストール後に実行する必要があるコマンド

.msi ファイルを使用して拡張機能を展開する場合は、Visual Studio で拡張機能を検出するために、インストールの一部として devenv/setup を実行する必要があります。

Note

このトピックの情報は、Visual Studio 2008 以前のバージョンで devenv.exe を検出する場合に適用されます。 新しいバージョンの Visual Studio で devenv.exe を検出する方法の詳細については、「システム必要条件の検出」を参照してください。

devenv.exe の検出

Visual Studio インストーラーによって書き込まれたレジストリ値から各バージョンの devenv.exe を見つけることができます。RegLocator テーブルと AppSearch テーブルを使用して、レジストリ値をプロパティとして格納します。 詳細については、「システム必要条件の検出」をご覧ください。

さまざまなバージョンの Visual Studio で devenv.exe を検索するための RegLocator テーブル行

署名 ルート キー 件名 Type
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 として書き込まれます。

Note

RegLocator テーブルの Type 列は 2 であるため、Signature テーブルで追加のバージョン情報を指定する必要はありません。

devenv.exe の実行

AppSearch の標準アクションがインストーラーで実行された後、AppSearch テーブル内の各プロパティには、対応するバージョンの Visual Studio の devenv.exe ファイルをポイントする値が含まれます。 そのバージョンの Visual Studio がインストールされていないため、指定したレジストリ値が存在しない場合は、指定したプロパティは null 値に設定されます。

Windows インストーラーでは、カスタム アクション タイプ 50 を通じてプロパティがポイントする実行可能ファイルの実行がサポートされています。 カスタム アクションには、VSPackage が Visual Studio に統合される前に正常にインストールされたことを確認するために、スクリプト内実行オプション msidbCustomActionTypeInScript (1024) と msidbCustomActionTypeCommit (512) が含まれている必要があります。 詳細については、「CustomAction テーブル」と「カスタム アクションのスクリプト内実行オプション」を参照してください。

タイプ 50 のカスタム アクションでは、実行可能ファイルを含むプロパティを、ターゲット列の Source 列とコマンドライン引数の値として指定します。

devenv.exe を実行する CustomAction テーブル行

アクション Type source 移行先
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 テーブルに作成する必要があります。 Condition 列の各行で対応するプロパティを使用して、Visual Studio のそのバージョンがシステムにインストールされていない場合にカスタム アクションが実行されないようにします。

Note

null 値のプロパティは、条件で使用されると False に評価されます。

各カスタム アクションの Sequence 列の値は、Windows インストーラー パッケージ内の他のシーケンス値によって異なります。 シーケンス値は、 devenv.exe カスタム アクションが InstallFinalize の標準アクションの直前にできるだけ近いタイミングで実行されるようにする必要があります。

devenv.exe カスタム アクションをスケジュールするための InstallExecuteSequence テーブル

アクション 条件 シークエンス
CA_RunDevenv2002 DEVENV_EXE_2002 6602
CA_RunDevenv2003 DEVENV_EXE_2003 6603
CA_RunDevenv2005 DEVENV_EXE_2005 6605
CA_RunDevenv2008 DEVENV_EXE_2008 6608