Mvc5插件化 Plugin.Mvc 和 RazorGenerator.Mvc

手頭有一個項目,使用的RazorGenerator.Mvc,使一個項目插件化,這個插件會把cshtml也編譯到DLL,同時也能夠把.js ,.css 資源打包進DLL中css

用了一段時間,發現RazorGenerator.Mvc適合小型項目或者開發公共模塊或者插件使用很方便,可是實現插件化仍是有些麻煩的。html

後來找到了另一個插件Plugin,能夠實現項目插件化,使用步驟:mvc

1.主項目引入asp.net

根據項目需求選擇合適的版本,這個是asp.net.mvc >=5.1的this

2.插件項目引入url

3.插件項目建立啓動類spa

 public class SchoolPlugin : IPlugin
    {
  //插件名字
public string Name { get { return "School"; } }      //初始化路由規則 public void Initialize() { var route = RouteTable.Routes.MapRoute( name: this.Name, url: this.Name + "/{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, pluginName = this.Name } ); route.DataTokens["area"] = this.Name; }      //卸載插件 public void Unload() { RouteTable.Routes.Remove(RouteTable.Routes[this.Name]); } }

 

 4.手動copy插件目錄:bin(類庫-Controller和業務),Content(主要是css), Scripts(js),Views(視圖) 等目錄 其中bin是必須的..net

  也能夠自動copy, 生成事件的後期生成事件命令行:插件

rd /s /q $(SolutionDir)PluginMain\Plugins\School

xcopy /s /y $(ProjectDir)Views $(SolutionDir)PluginMain\Plugins\School\Views\
xcopy /s /y $(ProjectDir)Content $(SolutionDir)PluginMain\Plugins\School\Content\
xcopy /s /y $(ProjectDir)Scripts $(SolutionDir)PluginMain\Plugins\School\Scripts\

  

 5.啓動主項目, 插件項目訪問路徑:  /School/Home/Index命令行

相關文章
相關標籤/搜索