我想创建一个功能,允许我自动将一些相关文件添加到我的 C# 项目中。我想创建一个基于模板的新表单,并创建一个 XML 文件并将其添加到项目中的单独子目录中。我该怎么做呢?我看到 Visual Studio 2008 中提供了向导、加载项、宏等,但我不知道哪个最适合我的需要。我认为一个巫师会起作用,但这可能是矫枉过正。我只想消除从同一项目中现有文件集中复制的重复性。
1 回答
您可以使用 VS2010 中的菜单 File|Export Template... 将单个项目项导出为压缩模板。要创建包含多个文件的模板,您可以导出第一个项目,然后将其他项目添加到生成的模板 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$
为所需的名称。