有没有办法通过VSIX扩展将自定义文件过滤器添加到Visual Studio的打开文件对话框?

时间:2012-04-22 22:55:22

标签: visual-studio visual-studio-2010 mef vsix vspackage

我正在通过VSIX扩展项目实现一组MEF扩展。这适用于小型内部DSL。

我可以让语法高亮显示工作得很好。

我想要做的是能够在Visual Studio的“打开文件”对话框中拥有关联的文件过滤器条目。

有没有办法通过VSIX扩展来做到这一点?如果没有,那么将过滤器添加到该列表的制裁方法是什么?

我在VSPackage系统中没有看到任何可以执行此操作的内容。

1 个答案:

答案 0 :(得分:0)

如果您开发的软件包仅包含自定义语言服务,并且您希望能够创建自定义项目类型的项目 - 则需要开发项目系统(请参阅IronPython Project System Sample并查看MSDN })。

但是,如果您只想将自定义扩展添加到“打开文件”对话框中的某个现有项目组中,则只需创建自定义项目模板即可。像这样的事情:

<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>Class.my</DefaultName>
    <Name>MY File Class</Name>
    <Description>An empty class definition</Description>
    <Icon>__TemplateIcon.ico</Icon>
    <ProjectType>[PUT HERE THE PROJECT TYPE YOU WANT TO PLACE YOUR TEMPLATE UNDER]</ProjectType>
    <SortOrder>10</SortOrder>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.my" ReplaceParameters="true">Class.my</ProjectItem>
  </TemplateContent>
</VSTemplate>

创建新模板的easiest way是从ZIP中提取现有的解包,调整所需的全部内容并将其重新安装回IDE中。但您也可以从头开始创建它并在VS中进行安装时安装。我猜你有足够的指针来深入挖掘;)