将自定义视图引擎添加到新项目对话框?

时间:2011-03-01 10:07:10

标签: .net asp.net-mvc-3 viewengine

为MVC3创建新项目时,我可以选择自定义视图引擎。我可以选择 Razor ASPX 。有没有办法将 Spark 添加到下拉列表中?

2 个答案:

答案 0 :(得分:2)

简短的回答是:不,不是真的。

答案很长:是的,但有一个问题,需要注册表编辑。

New Project Dialog是围绕首先选择projecttemplate然后选择该模板支持的视图引擎的想法而构建的。

其他人已设法将自己的内容添加到此窗口,因此我接受了ASP.NET MVC 3 with xUnit.net Testproject提供的提示,这是另一个第三方扩展,并在注册表中玩了一段时间。

首先,您必须为visual studio创建一个ProjectTemplate,从中可以生成一个干净的Spark项目。为了完整起见,您可以通过创建一个新的Razor项目,为Spark重新连接它然后使用文件菜单导出模板来完成此操作。取消选中此框以在VS中自动注册新导出。我选择保持我的安装简单,并将新模板移动到官方MVC3项目模板所在的位置(对我来说是C:\Program Files (x86)\Microsoft VisualStudio 10.0\Common\IDE\ProjectTemplates\CSharp\Web)。然后从VS的命令行运行“devenv / setup”以查找并注册新创建的模板。

必须在此添加新对话窗口的自定义添加内容:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Mvc3\ProjectTemplates]
 |
 |- [MyOwnTemplate]
      |- (REG_SZ)Title="Template title"
      |- (REG_SZ)Description="Description for the box in the right"
      |- [C#]
          |- [Spark]
          |   |- (REG_SZ)Path="CSharp\\Web"
          |   |- (REG_SZ)Template="YourCustomCSharpSparkTemplate.zip"
          |   |- (REG_DWORD)SupportsUnitTests=1
          |- [Razor]
              |- (REG_SZ)Path="CSharp\\Web"
              |- (REG_SZ)Template="YourCustomCSharpRazorTemplate.zip"
              |- (REG_DWORD)SupportsUnitTests=0

如果您没有使用64位安装,请从打开的注册表节点中删除Wow6432Node密钥。

现在,当您重新启动VS并运行MVC3的“新建项目对话框”向导时,应在其中列出新注册的模板。当您选择自定义projecttemplate时,您应该看到ViewEngine下拉列表显示“Spark”作为当前ViewEngine。

ProjectTemplates下顶部键的New Project Dialog组模板。由于MVC3没有在注册表中注册其默认模板,因此我们不知道它们被分组到哪个键,因此无法将自己的ViewEngines添加到这些模板中。

答案 1 :(得分:0)

您必须添加T4模板,以添加对其他视图引擎(包括Spark)的支持。这是一个解释它的链接:http://weblogs.asp.net/jacqueseloff/archive/2010/07/30/mvc-3-supporting-custom-view-engines.aspx