LoginSignup
0
1

More than 5 years have passed since last update.

Visual Studio 2017 のプロジェクト・項目テンプレートがインストールされている場所を調べる方法

Last updated at Posted at 2017-09-27

はじめに

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

        PackageDef

    • ファイルに以下の内容を記述してください

      [$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
        • 例の場合は、インスタンス ID "6cbcf19b"
        • %LOCALAPPDATA%\Microsoft\VisualStudio\15.0_6cbcf19b\VsTemplateDiagnosticsList.csv

    CSV File Path

  • CSV を開くと、プロジェクト・項目テンプレートのインストールフォルダが出力されていることがわかります

CSV File Contents

確認

  • 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 で場所を確認すると、ログに出力されている通り、テンプレートのファイルが存在していることが分かります

    Xamarin.Forms Template

注意事項

テンプレートの場所が分かったら、EnablePkgDefLogging.pkgdef ファイルを削除するか、値を dword:00000000 に修正して、devenv /updateConfiguration コマンドを再度実行して、診断ログの出力を無効にしておきましょう。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1