1

我想创建一个功能,允许我自动将一些相关文件添加到我的 C# 项目中。我想创建一个基于模板的新表单,并创建一个 XML 文件并将其添加到项目中的单独子目录中。我该怎么做呢?我看到 Visual Studio 2008 中提供了向导、加载项、宏等,但我不知道哪个最适合我的需要。我认为一个巫师会起作用,但这可能是矫枉过正。我只想消除从同一项目中现有文件集中复制的重复性。

4

1 回答 1

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$为所需的名称。

于 2012-12-01T23:02:56.867 回答