1

我正在尝试注册自定义内容类型,类似于MSDN 论坛上的这个问题:我想注册一个本质上是 HTML 文件的自定义扩展,例如:

[Export]
[DisplayName("My Custom Markup")]
[Name("mycustom")
[BaseDefinition("html")]
internal static ContentTypeDefinition MyCustomContentType;

[Export]
[FileExtension(".mycustom")]
[ContentType("mycustom")]
internal static FileExtensionToContentTypeDefinition MyCustomFileExtensionDefinition;

因此,通过指定BaseDefinitionas html,我可以在.mycustom文件中突出显示 HTML,不幸的是,我什么也得不到,特别是 HTML 智能感知。从上面的链接看来,让 Visual Studio 将自定义扩展识别为特定编辑器类型的唯一方法,但我必须破解注册表(或者更具体地说,通过ProvideEditorExtension属性提供它,但它仅适用于 VSPackage )。

所以我的问题是,基本上,是否有另一种方法可以以编程方式向编辑器注册自定义扩展,但不为其创建自定义 VSPackage?当然,除了入侵注册表之外?

(我的方法可能完全错误,在这种情况下,非常感谢您的帮助!)

4

1 回答 1

2

最简单的方法是使用这里演示的技术:

http://blogs.msdn.com/b/noahric/archive/2010/03/01/new-extension-css-is-less.aspx

这实际上是“入侵注册表”,但是以受支持的方式。您只需将所需的密钥包装在可以包含在编辑器扩展中的 .pkgdef 文件(本质上是 .reg 文件)中。

于 2013-12-21T06:04:31.783 回答