我正在開發使用MEF和Asp.NET MVC 3基於插件的應用程序,我想創建一個自定義項目模板創建新的應用程序插件的時候給第三方開發者。如何在新的Asp.Net MVC 3項目對話框中添加自定義的項目模板?
我可以很容易地將其導出爲一個項目模板,但由於主機在ASP.NET MVC 3開發的,這似乎更符合邏輯在裏面新的Asp.Net MVC 3項目的對話框。
任何想法?
我正在開發使用MEF和Asp.NET MVC 3基於插件的應用程序,我想創建一個自定義項目模板創建新的應用程序插件的時候給第三方開發者。如何在新的Asp.Net MVC 3項目對話框中添加自定義的項目模板?
我可以很容易地將其導出爲一個項目模板,但由於主機在ASP.NET MVC 3開發的,這似乎更符合邏輯在裏面新的Asp.Net MVC 3項目的對話框。
任何想法?
一些挖掘後和「反映」,我得到了一個模板,成功地顯示出來在對話框中。大部分的功勞去這個職位:Add custom viewengine to New project dialog?
讓我的機器(64位)工作的關鍵是在該帖子的答案中提到的註冊表路徑。如果您需要,我還通過Reflector找到了SupportsHTML5密鑰。
這裏是我的模板的屏幕截圖:
,這裏是註冊表項(也有在MyOwnTemplate節點的標題和描述)
如果你看看你的模板目錄的Visual Studio,並檢查了模板:
MvcWebApplicationProjectTemplatev3.0.cs.zip
(VS安裝目錄)\ Common7 \ IDE \ ProjectTemplates \ CSHARP \網絡\ 1033
看這裏的東西是這一行:
<WizardExtension>
<Assembly>Microsoft.VisualStudio.Web.Mvc.3.0, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</Assembly>
<FullClassName>Microsoft.VisualStudio.Web.Mvc.UserInterface.MvcTemplateWizard</FullClassName>
</WizardExtension>
所以他們有一個自定義嚮導在這裏工作。 這些問題看起來是相似的:
Blank Asp.net MVC template
How to write an MVC3 Project Template that will offer option Razor or .aspx views
基本上,他們說精靈是不是開源的,但你可能會寫自己的自定義嚮導。
編輯:
這裏有幾個頁面,告訴你如何創建自己的嚮導:
http://msdn.microsoft.com/en-us/library/ms185301.aspx
http://www.codeproject.com/KB/system/create_VS_wizard.aspx
如果你使用反射,你可能想看看這些方法:代碼://Microsoft.VisualStudio.Web.Mvc.3.01:3.1.0.0:31bf3856ad364e35/Microsoft.VisualStudio.Web.Mvc。 UserInterface.ProjectTemplates/LoadProjectTemplate(Microsoft.Win32.RegistryKey,字符串,字符串):Microsoft.VisualStudio.Web.Mvc.UserInterface.ProjectTemplate – 2011-06-01 01:35:01
和代碼://Microsoft.VisualStudio.Web.Mvc.3.01:3.1.0.0:31bf3856ad364e35/Microsoft.VisualStudio.Web.Mvc.UserInterface.ProjectTemplates/LoadProjectTemplates(系統。的IServiceProvider,字符串,System.Collections.Generic.Dictionary <字符串,Microsoft.VisualStudio.Web.Mvc.UserInterface.ProjectTemplate>):System.Collections.Generic.Dictionary <字符串,Microsoft.VisualStudio.Web.Mvc.UserInterface.ProjectTemplate> – 2011-06-01 01:35:18
我只是寫一篇博客文章中,討論瞭如何做到這一點,提供了一個zip文件,並用一個例子的批處理文件。
http://haacked.com/archive/2011/06/06/creating-a-custom-asp-net-mvc-project-template.aspx
偉大的文章...我一直在等待這個職位一段時間,從你宣佈你會寫下它的那一天起:D – 2011-06-06 16:23:40
這是一個很好的答案!它很簡單,一旦你找到它:) – Beno 2011-06-01 01:40:51
Thnx傑森。這正是我想要的。現在剩下要做的唯一事情是以某種方式自動執行此過程:修改註冊表項並將.zip(模板)複製到Project Templates文件夾中。 – 2011-06-01 18:40:57
不要忘了你需要運行devenv.exe/setup來將你的模板放到VS的Project Template Cache中。 – 2011-06-01 19:31:25