Visual Studio扩展包 - 自定义文件类型 - 编辑器和图标

时间:2014-07-05 20:20:49

标签: visual-studio visual-studio-2013 visual-studio-extensions envdte vsix

目前我正在使用项目实例(EnvDTE.ProjectItem)和方法AddFromFile(" .cft")将自定义文件类型(例如.cft)添加到我的Visual Studio项目中。 / p>

我的问题是,如何告诉Visual Studio对所有.cft文件使用标准XML编辑器,以及如何为所有.cft文件分配图标(对于解决方案资源管理器)。

注意,如果使用以下代码产生差异,我还会为文件指定一个自定义工具:

var vsProjItem = projectItem.Object as VSProjectItem;
pitem.Properties.Item("CustomTool").Value = "MyCustomToolName";

1 个答案:

答案 0 :(得分:0)

我认为您需要创建一个具有以下结构的新ItemTemplate:

__TemplateIcon.ico
YourTemplateName.vstemplate [Compile it as vstemplate]
YourFile.cft

以下结构应该生成一个* .zip文件,然后可以将其放置到Visual Studio模板文件夹中,稍后通过EnvDTE引用。

这是YourTemplateName.vstemplate:

<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>YourTemplateNameblah</DefaultName>
    <Name>Blahblahblah</Name>
    <Description>BlahBlahBlah</Description>
    <Icon>__TemplateIcon.ico</Icon>
    <ProjectType>?? Your project type ??</ProjectType>
    <SortOrder>10</SortOrder>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem SubType="Xml" TargetFileName="$fileinputname$.cft" ReplaceParameters="true">YourFile.cft</ProjectItem>
  </TemplateContent>
</VSTemplate>

来自MZTOOLS的报价

  

Visual Studio在“新建项”对话框中显示的项目模板   存储在文件夹C:\ Program Files(x86)\ Microsoft Visual中   Studio \ Common7 \ IDE \ ItemTemplatesCache,存储它们的位置   在包含编程语言的文件夹中(&#34; CSharp&#34;,   &#34; VisualBasic&#34;等),技术(&#34; Web&#34;,&#34;云&#34;等)和语言环境   (&#34; 1033&#34;等)。

     

自动化模型(EnvDTE,EnvDTE80)提供   EnvDTE80.Solution2.GetProjectItemTemplate获取项目项的方法   给定项目项模板名称的模板文件名(例如   &#34; Class&#34;)和编程语言(例如&#34; CSharp&#34;或   &#34;的VisualBasic&#34;。)

     

获得模板文件名后,可以将项目项添加到a   使用AddFromTemplate方法的ProjectItems集合。注意:这个   方法返回null(Nothing)而不是EnvDTE.ProjectItem   创建,因此您可能需要在中创建项目项   ProjectItems集合。请参阅PRB:Solution.AddXXX和   ProjectItems.AddXXX方法返回Nothing(null)。

http://www.mztools.com/articles/2014/MZ2014009.aspx