C#プロジェクトにいくつかの関連ファイルを自動的に追加できる機能を作成したいと思います。テンプレートに基づいて新しいフォームを作成し、XMLファイルを作成して、プロジェクト内の別のサブディレクトリに追加したいと思います。どうすればこれを行うことができますか?Visual Studio 2008で使用できるウィザード、アドイン、マクロなどがあるようですが、どちらが自分のニーズに最も適しているかわかりません。ウィザードが機能すると思いましたが、それはやり過ぎかもしれません。同じプロジェクト内の既存のファイルセットからコピーの繰り返しを削除したいだけです。
1 に答える
VS2010の[ファイル]|[テンプレートのエクスポート...]メニューを使用して、個々のプロジェクトアイテムをzip形式のテンプレートとしてエクスポートできます。複数のファイルを含むテンプレートを作成するには、最初のアイテムをエクスポートしてから、結果のテンプレートzipにアイテムを追加します。また、zip内の.vstemplateファイルを編集して、追加のアイテムを含める必要があります。
例として、既存のプロジェクトからフォームをエクスポートしてから、xmlファイルを追加しました。結果のzipファイルにはファイルが含まれています
__TemplateIcon.ico
Form1.cs
Form1.Designer.cs
Form1.resx
MyTemplate.vstemplate
xmldata.xml
.vstemplateファイルには次のxmlが含まれています。
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
<TemplateData>
<DefaultName>TwoFileTemplate</DefaultName>
<Name>TwoFileTemplate</Name>
<Description>Test template</Description>
<ProjectType>CSharp</ProjectType>
<SortOrder>10</SortOrder>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<References />
<ProjectItem SubType="" TargetFileName="xml\$fileinputname$.xml" ReplaceParameters="true">xmldata.xml</ProjectItem>
<ProjectItem SubType="Form" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Form1.cs</ProjectItem>
<ProjectItem SubType="" TargetFileName="$fileinputname$.Designer.cs" ReplaceParameters="true">Form1.Designer.cs</ProjectItem>
<ProjectItem SubType="" TargetFileName="$fileinputname$.resx" ReplaceParameters="true">Form1.resx</ProjectItem>
</TemplateContent>
</VSTemplate>
zipファイルを更新したら、それをフォルダー... \ Visual Studio 2010 \ Templates\ItemTemplatesに移動します。
これで、VS2010の[新しいアイテムの追加]ダイアログに新しいテンプレートが表示されます。プロジェクトに新しいアイテムを追加するときに指定した名前でフォームとxmlファイルを追加し、xmlファイルを「xml」という名前のディレクトリに配置します。いずれかのファイルに固定名が必要な場合$fileinputnam$
は、.vstemplateファイルで目的の名前に置き換えることができます。
編集-フォームまたは他のクラスファイルの固定アイテム名が必要な場合は、コードテンプレートを開いて$safeitemname$
、目的の名前に置き換える必要もあります。