Visual studio 如何在Visual Studio扩展(VSIX)中将项目文件类型与项目类型关联

Visual studio 如何在Visual Studio扩展(VSIX)中将项目文件类型与项目类型关联,visual-studio,clojure,clojureclr,Visual Studio,Clojure,Clojureclr,我正在尝试修复一个错误,即VisualStudio无法将扩展名为.cljproj的文件识别为Clojure项目。这仅在VS尚未打开时发生;换句话说,如果您打开VS,然后打开包含Clojure项目的解决方案,它将识别该项目。但是,如果您从资源管理器打开解决方案或尝试从资源管理器打开项目本身,它会显示“Visual Studio无法识别此项目类型” 我的直觉是,当从资源管理器打开项目时,VisualStudio需要加载以识别此项目类型的任何内容都不会很快加载,而是在VisualStudio已经启动并

我正在尝试修复一个错误,即VisualStudio无法将扩展名为.cljproj的文件识别为Clojure项目。这仅在VS尚未打开时发生;换句话说,如果您打开VS,然后打开包含Clojure项目的解决方案,它将识别该项目。但是,如果您从资源管理器打开解决方案或尝试从资源管理器打开项目本身,它会显示“Visual Studio无法识别此项目类型”

我的直觉是,当从资源管理器打开项目时,VisualStudio需要加载以识别此项目类型的任何内容都不会很快加载,而是在VisualStudio已经启动并运行时加载。那么,我的问题是,VisualStudio需要加载什么才能识别扩展的项目类型?我如何告诉VisualStudio加载它


我已经阅读了MSDN的VSIX文档以获得答案,但是有大量文档需要阅读,在我所查看的内容中,我没有看到与此问题相关的任何内容。我还研究了IronPython的扩展,但它的结构似乎与VsClojure完全不同。任何帮助都将不胜感激。

您必须将项目类型添加到注册表中,以便Visual Studio能够识别并加载*.cljproj文件。有关添加新项目类型时涉及的所有步骤的详细信息,请参阅MSDN文章

很遗憾,您无法从VSIX进行此更改,因为:

VSIX格式严格使用基于文件的部署,并且不支持 支持写入全局程序集缓存(GAC)或系统 登记处

相反,您需要创建一个MSI安装程序。在这种情况下,选择你的。IronPython使用,因此您可以将其作为示例。以下是WiX XML的一个片段,它为项目类型设置了一些注册表:


查看IronPython源代码树下的Msi目录,了解完整示例