2011-03-01 57 views

回答

2

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

長的答案是:是的,但有一個問題,它需要註冊表編輯。

New Project Dialog圍繞着先選擇項目模板然後選擇該模板支持的視圖引擎的想法而構建。

其他人已成功將自己的東西添加到此窗口中,因此我採用了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的新建項目對話框嚮導時,應在其中列出新註冊的模板。當您選擇自定義項目模板時,您應該看到ViewEngine下拉菜單顯示「Spark」作爲當前ViewEngine。

New Project Dialog使用ProjectTemplates下的頂級模板對模板進行分組。由於MVC3沒有在註冊表中註冊它的默認模板,我們不知道它們被分組到哪個鍵上,因此不能將我們自己的ViewEngine添加到這些模板中。

+0

我懷疑你有內幕消息......我將在週末查看此消息。感謝你的回答! – Ropstah 2011-03-30 07:54:18

+0

這個答案現在已過時。請參閱 http://haacked.com/archive/2011/06/06/creating-a-custom-asp-net-mvc-project-template.aspx – 2011-06-14 08:11:47