2012-01-14 46 views
3

我试图修复VsClojure中的错误,Visual Studio无法识别扩展名为.cljproj的文件作为Clojure项目。这只发生在VS尚未打开时;换句话说,如果你打开VS然后打开包含Clojure项目的解决方案,它就会识别该项目。但是,如果您从资源管理器打开解决方案或尝试从资源管理器打开项目本身,则会显示“该项目类型无法被Visual Studio识别”。如何将项目文件类型与Visual Studio扩展(VSIX)中的项目类型相关联

我的直觉是,无论Visual Studio需要加载,以便识别此项目类型不会很快从资源管理器打开项目时加载,但在Visual Studio已启动并运行时加载。那么,我的问题是,Visual Studio需要加载什么才能识别扩展的项目类型?我如何告诉Visual Studio加载它?

我已经通过MSDN的VSIX文档查找了答案,但有大量的文档要通过,而在我看到的内容中,我没有看到任何与此问题有关的内容。我也看过IronPython的扩展,但它似乎与VsClojure完全不同。任何帮助将非常感激。

回答

2

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

不幸的是你不能从这个VSIX变化,MSDN states

的VSIX格式严格使用基于文件的部署和不 支持写入到全局程序集缓存(GAC),或到系统 注册表。

相反,您需要创建一个MSI安装程序。在这种情况下,选择你的MSI creation method。 IronPython使用Windows Installer XML (WiX) toolset,所以你可以使用它作为你的例子。下面是从维克斯XML片断,设置了一些注册表中的项目类型:

<Component Id="Comp_PyProgRegistration" DiskId="1" Guid="A7BC75A8-F418-4133-8BF9-490A76E99108"> 
    <RegistryValue Root='HKCR' Key='.pyproj' Type='string' Name='PerceivedType' Value='text' /> 
    <RegistryValue Root='HKCR' Key='VisualStudio.Launcher.pyproj.10.0\DefaultIcon' Type='string' Value='[IpyToolsInstallDir]PythonProject.ico' /> 
    <ProgId Id="VisualStudio.Launcher.pyproj.10.0" Description="IronPython Project"> 
    <Extension Id="pyproj" ContentType="text/plain"> 
     <Verb Id="OpenPyProj" Command="Open" TargetProperty="VSLAUNCHER" Argument="&quot;%1&quot;"/> 
    </Extension> 
    </ProgId> 
</Component> 

退房下IronPython的源代码树为全面例如微星目录。

相关问题