目前我正在使用项目实例(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";
答案 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)。