原文
VSTA Sample Host Integration.docxは、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は、 続いて、プロジェクトを作成するために、それを利用することができます。
テンプレートを作成するには:
- Visual Studio 2012で、C#クラス・ライブラリ・プロジェクトを作成します。そして、それに「TemplateProject」という名前をつけます。
- 「AddIn」にClass1の名前を変更します。そして、以下のメソッドを追加します。:
- ファイルAddIn.csで、「TemplateProject」の全てのインスタンスと「$safeprojectname$」を入れ替えます。 それは、テンプレートから作成されるとき、プロジェクトの実際の名前に、置き換えられます。
- ファイルAssemblyInfo.csで、「TemplateProject」の全てのインスタンスと「$safeprojectname$」を入れ替えます。それは、プロジェクトの実際の名前に、置き換えられます。 それが、テンプレートから作成されるとき、GUIDのGUID属性を、「$guid2$」に置き換えます。それは、プロジェクトが、テンプレートから作成されるとき、作成されたGUIDに置き換えられます。
- 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)を入れ替えます。
{30D016F9-3734-4E33-A861-5E7D899E18F3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 最終的に、要素(Microsoft.CSharp.targets)をインポートした後で、ProjectExtensions要素を挿入します。:
- TemplateProjectのソリューション・フォルダで、manifest.xmlという名前のXMLファイルを追加します。:
- TemplateProjectソリューション・フォルダで、コマンド・プロンプトを開きます。そして、次に示すコマンドを実行します。:
public static void Init() { // Place add-in start-up code here // アドインの最初のコードを、ここに配置します。 }
<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で、読み込まないでしょう。
<?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>
"%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ファイルにパッケージ化するために、複数テンプレートを提供します。