在为 MVC3 创建新项目时,我可以选择自定义视图引擎。我可以在Razor和ASPX之间进行选择。有没有办法将Spark添加到下拉列表中?
2 回答
简短的回答是:不,不是真的。
长答案是:是的,但有一个问题,它需要注册表编辑。
这New Project Dialog
是围绕首先选择项目模板,然后选择该模板支持的视图引擎的想法构建的。
其他人已经设法将自己的东西添加到此窗口中,因此我采用了ASP.NET MVC 3 和 xUnit.net Testproject提供的提示,这是另一个第三方扩展,并在注册表中玩了一段时间。
首先,您必须为 Visual Studio 创建一个 ProjectTemplate,它可以从中生成一个干净的 Spark 项目。为了完整起见,您可以通过创建一个新的 Razor 项目、为 Spark 重新连接它然后使用文件菜单导出模板来完成此操作。取消选中该框以在 VS 中自动注册新导出。我选择保持安装简单,并将新模板移动到官方 MVC3 项目模板所在的位置(对我来说是这样C:\Program Files (x86)\Microsoft VisualStudio 10.0\Common\IDE\ProjectTemplates\CSharp\Web
)。然后从命令行运行“devenv /setup”,让 VS 找到并注册新创建的模板。
必须在此处添加对新对话窗口的自定义添加:
[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 的新建项目对话框向导时,新注册的模板应该会在其中列出。当您选择自定义项目模板时,您应该会看到 ViewEngine 下拉菜单显示“Spark”作为当前 ViewEngine。
New Project Dialog
按 ProjectTemplates 下的顶部键对模板进行分组。由于 MVC3 没有在注册表中注册其默认模板,我们不知道它们被分组在哪个键下,因此无法将我们自己的 ViewEngines 添加到这些模板中。
您必须添加 T4 模板以添加对其他视图引擎(包括 Spark)的支持。这是一个解释它的链接:http ://weblogs.asp.net/jacqueseloff/archive/2010/07/30/mvc-3-supporting-custom-view-engines.aspx