ベクトルドロー・レベルゼロ+

ホーム > コンピュータ > C# > WPF in C#

ホスト統合のVSTAサンプル プロジェクト・テンプレートを作成する

作成日 2015.06.05
最終更新日 2015.06.06

概要

Visual Studio Communityが無償で使えるようになったので、Expressエディションで使えなかった機能が使えるようになりました。 Microsoft Visual Studio Tools for Applications(VSTA)は、 VBAやC#を使ったマクロ機能をアプリケーションに組込むことができる機能です。

VSTA Sample Host Integration.docは、SDKをダウンロードする際、一緒にダウンロードすることができます。

インストール

VSTA2013とVSTA2012SDKをインストールします。

ダウンロード先

Microsoft Visual Studio Tools for Applications 2013(VSTA)(外部サイト)

Microsoft Visual Studio Tools for Applications 2012 SDK(外部サイト)

ホスト統合のVSTAサンプル

[VSTA Sample Host Integration]

プロジェクト・テンプレートを作成する

Creating a Project Template

VSTAで、プロジェクトを作成するには、 あなたは、プロジェクト・テンプレートを選択する必要があります。このテンプレートは、それらのコードの解決法を追加することを、 エンド・ユーザーを利用可能にするために、プロジェクト・ソース・ファイルに必要な、基本的なフレームワークを提供します。 VSTAで、プロジェクト・テンプレートは、VSTAXファイルでパッケージ化されます。 これらのファイルは、1つ以上のテンプレートが含まれます。それは、あなたのホスト・アプリケーションで、再配布されることができます。 これらのプロジェクト・テンプレートは、プロジェクト・テンプレートとは異なって動作します。それは、Visual Studio 2012で配置されます。 その中に、VSTAテンプレートは、Visual Studioと一緒に、インストールする必要ありません。 これは、ホスト・アプリケーションが、テンプレート配置を完全に制御できます。VSTAテンプレートは、置換トークン (例えば、"$projectname$")、GUID生成(例えば、"$guid2$")のための組み込み機能を提供します。 そして、プロジェクトが作成される間、SNKファイルが生成されます。あなたは、TemplateGenerator.exeを用いて、 VSTAプロジェクトのためのテンプレートを作成することができます。コマンド・ライン・ツールは、 フォルダ、%ProgramFiles(x86)%\Microsoft SDKs\VSTA\11.0\ToolsにVSTA SDKに含まれています。 あなたは、VSTAXファイルを作成するために、このツールを使用することができます。VSTAは、 続いて、プロジェクトを作成するために、それを利用することができます。

テンプレートを作成するには:

  1. Visual Studio 2012で、C#クラス・ライブラリ・プロジェクトを作成します。そして、それに「TemplateProject」という名前をつけます。
  2. 「AddIn」にClass1の名前を変更します。そして、以下のメソッドを追加します。:
  3. public static void Init()
    {
        // Place add-in start-up code here	
        // アドインの最初のコードを、ここに配置します。
    }
    
  4. ファイルAddIn.csで、「TemplateProject」の全てのインスタンスと「$safeprojectname$」を入れ替えます。 それは、テンプレートから作成されるとき、プロジェクトの実際の名前に、置き換えられます。
    1. ファイルAssemblyInfo.csで、「TemplateProject」の全てのインスタンスと「$safeprojectname$」を入れ替えます。それは、プロジェクトの実際の名前に、置き換えられます。 それが、テンプレートから作成されるとき、GUIDのGUID属性を、「$guid2$」に置き換えます。それは、プロジェクトが、テンプレートから作成されるとき、作成されたGUIDに置き換えられます。
    2. fileTemplateProject.csprojで、「TemplateProject」の全てのインスタンスと「$safeprojectname$」を入れ替えます。 それは、テンプレートから作成されるとき、プロジェクトの実際の名前に、更新されます。ProjectGuid要素のコンテンツを「{$guid1$}」に置き換えます。 それは、プロジェクトが、テンプレートから作成されるとき、作成されたGUIDに置き換えられます。 この文書で後述するように、PropertyGroup要素で、要素『<ProjectTypeGuids>』、を追加します。 この手順の後、2つのGUIDは、それぞれVSTAとC#プロジェクトの種類を表します。Visual Basicのためのテンプレートを作成するために、 Visual BasicプロジェクトGUID(F184B08F-C81C-45F6-A57F-5ABD9991F28F)と、C#プロジェクトGUID(FAE04EC0-301F-11D3-BF4B-00C04F79EFBC)を入れ替えます。
    3. {30D016F9-3734-4E33-A861-5E7D899E18F3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
    4. 最終的に、要素(Microsoft.CSharp.targets)をインポートした後で、ProjectExtensions要素を挿入します。:
    5. <ProjectExtensions>
        <VisualStudio>
          <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
            <ProjectProperties
              HostName = "MyHostApp"
              HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}"
              ApplicationType=""
              Language="cs"
              TemplatesPath="" />
          </FlavorProperties>
        </VisualStudio>
      </ProjectExtensions>
      

      全ての属性が、必要です。あるいは、プロジェクトは、VSTAで、読み込まないでしょう。

  5. TemplateProjectのソリューション・フォルダで、manifest.xmlという名前のXMLファイルを追加します。:
  6. <?xml version="1.0" encoding="utf-8" ?>
    <VstaTemplates xmlns="http://schemas.microsoft.com/developer/vstatemplatemanifest/2011" TemplateVersion="1.0">
      <ProjectTemplate ProjectType="msBuild" TemplateName="csaddin">
        <ProjectItems>
          <ProjectItem ReplaceParameters="true"
                       SourceFilePath="TemplateProject\TemplateProject.csproj"
                       TemplateFilePath="csaddin\AddIn.csproj"
                       TargetFilePath="$projectname$.csproj"
                       TargetItemType="Project" />
    
          <ProjectItem ReplaceParameters="true"
                       SourceFilePath="TemplateProject\AddIn.cs"
                       TemplateFilePath="csaddin\AddIn.cs"
                       TargetFilePath="AddIn.cs" />
    
          <ProjectItem ReplaceParameters="true"
                       SourceFilePath="TemplateProject\Properties\AssemblyInfo.cs"
                       TemplateFilePath="csaddin\AddIn.Designer.cs"
                       TargetFilePath="Properties\AssemblyInfo.cs" />
        </ProjectItems>
      </ProjectTemplate>
    </VstaTemplates>
    
  7. TemplateProjectソリューション・フォルダで、コマンド・プロンプトを開きます。そして、次に示すコマンドを実行します。:
  8. "%ProgramFiles(x86)%\Microsoft SDKs\VSTA\11.0\Tools\TemplateGenerator.exe" /manifest:manifest.xml /output:template.vstax

    このコマンドは、テンプレート・ファイルtemplate.vstaxを作成するでしょう。

備考:

  • あなたは、%ProgramFiles(x86)%\Microsoft SDKs\VSTA\11.0\Tools\フォルダで、 マニフェストXMLファイル(VstaTemplateManifestSchema.xsd)のための、スキーマーを見つけることができます。 このファイルには、個々の要素と属性の意味についてのコメントが含まれています。
  • マニフェスト・ファイルは、指定し、そして、一つのVSTAXファイルにパッケージ化するために、複数テンプレートを提供します。
ページトップへ
WPF in C#
C#トップ
inserted by FC2 system