Visual Studio 2017 のプロジェクト・項目テンプレートがインストールされている場所を調べる方法
はじめに
Visual Studio で、プロジェクト・項目テンプレートを独自に作成するときに、既存のテンプレートを参考にしたい場合があると思います。Visual Studio により提供されるテンプレートの場所を探すのは、意外と面倒です。 そこで、Visual Studio のプロジェクト・項目テンプレートがインストールされているパスを調べるための方法について記載します。
方法
Visual Studio では、診断用のログを出力する機能が実装されています。この設定は既定では OFF にされていますが、以下の手順で設定を行うことにより、テンプレートの診断ログを CSV ファイルに出力することができます。
- pkgdef ファイルを作成します
- 以下のファイルを作成します
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\EnablePkgDefLogging.pkgdef
ファイルに以下の内容を記述してください
[$RootKey$\VsTemplate] "EnableTemplateDiscoveryLog"=dword:00000001
- 以下のファイルを作成します
「Developer Command Prompt for VS2007」で以下のコマンドを実行します
devenv /updateConfiguration
- Visual Studio を起動して、新規プロジェクトを作成します(作成するプロジェクトの種類は問いません)
- プロジェクトに新しい項目を追加します(追加する項目の種類は問いません)
以下の場所に、Visual Studio にインストールされたテンプレートに関するログが CSV ファイルに出力されます
- %LOCALAPPDATA%\Microsoft\VisualStudio\15.0_[instanceid]\VsTemplateDiagnosticsList.csv
- [instanceid] は、Visual Studio のインスタンス ID
- %LOCALAPPDATA%\Microsoft\VisualStudio\15.0_[instanceid]\VsTemplateDiagnosticsList.csv
CSV を開くと、プロジェクト・項目テンプレートのインストールフォルダが出力されていることがわかります
確認
- CSV の項目は、以下の順番で値が出力されています
- テンプレートのフルパス
- テンプレートがどのようにデプロイされたかのフラグ(0 と 1 の値をとるようですが、何が違うのかは、よくわかりませんでした)
- テンプレートのファイル名(フルパスからの相対パスが出力されているようです)
- その他のプロパティ
Xamarin.Forms の Master Detail テンプレートの場合
項目 値 テンプレートのパス C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2017\ENTERPRISE\Common7\IDE\EXTENSIONS\XAMARIN.FORMS\T\P テンプレートのファイル名 \CSharp\Cross-Platform\MasterDetail.NoAzure.PCL.zip
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2017\ENTERPRISE\Common7\IDE\EXTENSIONS\XAMARIN.FORMS\T\P,0,\CSharp\Cross-Platform\MasterDetail.NoAzure.PCL.zip,CSharp\Cross-Platform\MasterDetail.NoAzure.PCL.zip\MasterDetail.NoAzure.PCL.vstemplate,3.0.0,ProjectGroup,Xamarin.Forms.MasterDetail.NoAzure.PCL,,CSharp,,CSharp\Cross-Platform\MasterDetail.NoAzure.PCL.zip\MasterDetail.NoAzure.PCL.vstemplate,0,
Explorer で場所を確認すると、ログに出力されている通り、テンプレートのファイルが存在していることが分かります
注意事項
テンプレートの場所が分かったら、EnablePkgDefLogging.pkgdef ファイルを削除するか、値を dword:00000000
に修正して、devenv /updateConfiguration
コマンドを再度実行して、診断ログの出力を無効にしておきましょう。
参考
- Upgrading Custom Project and Item Templates for Visual Studio 2017
- このページの「Troubleshooting Template Installation」を参考にしました