サポートされている方法
VS2017 のセットアップ エンジンには、VS2017 のどのインスタンスがインストールされているかに関する情報を照会できる相互運用 API があります。そのためのNuGet パッケージと、インストール パスを含むクエリ方法のサンプルもあります。バッチまたは PS ファイルで使用する場合は、サンプル アプリを書き直してスクリプトから呼び出し、必要な情報を出力するだけです。
サポートされていない方法
VS セットアップ エンジンは、そのデータのストアを の下に保持します%ProgramData%\Microsoft\VisualStudio\Packages\_Instances
。VS2017 の各インスタンス用のフォルダーがあり、そのフォルダー内にはstate.json
、インストール パスなど、そのインストールに関する情報を含むファイルがあります。
.json ファイルから情報を抽出する必要があるため、スクリプト ファイルから呼び出すアプリを作成するか、スクリプトで直接解析ロジックを作成するかを選択できます。 JSON スキーマまたはファイルの場所が変更される可能性があるため、これは明らかに脆弱です。
力ずくの方法
デフォルトのインストール パスを使用していると仮定すると、msbuild.exe を再帰的に検索できます%ProgramFiles(x86)%\Microsoft Visual Studio\
(VS インスタンスごとに 32 ビットと 64 ビットの msbuild.exe があるようです)。これは、スクリプト ファイル内で実行するのがおそらく最も簡単ですが、デフォルトのインストール パス (または検索するハードコードされたパス) に依存します。
開発環境の要件を変更する
vsdevcmd.bat
あなたができる最後のことは、開発者がVS開発環境を使用するために使用する(または何らかの方法で呼び出す)ことを要求することです。これにより、MSBuild と、さらに VS 環境のその他のツールが %PATH% に取得されます。これは開発チームに要件を課しますが、msbuild.exe を見つけるために常に公式にサポートされている方法です。