使T4MVC与ASP.NET 5一起使用

Max*_*Max 7 asp.net t4mvc coreclr asp.net-core r4mvc

根据最新的评论这个线程,.TT模板现在毕竟可以在ASP.NET 5开始支持Visual Studio的更新1.

哪个恕我直言会很好,因为在使用T4MVC多年后,我当然不想回到使用魔术字符串作为路由/视图名称(容易出错且不重构友好).

但是,我无法使用ASP.NET 5 RC和Visual Studio Professional 2015 Update 1.

这是我尝试过的:

  1. T4MVC NuGet(3.16.5)添加到空白的ASP.NET 5解决方案:nope,CoreCLR抱怨并且没有.tt文件添加到项目中:

错误NU1002项目WebApplication1中的依赖关系T4MVCExtensions 3.16.5不支持框架DNXCore,Version = v5.0.

  1. 在的NuGet添加到经典的ASP.NET 4.6的解决方案和手动复制了T4MVC.tt,T4MVC.tt.hooks.t4T4MVC.tt.settings.xml给ASP.NET 5解决方法:Visual Studio中的.TT文件确实提供了"运行自定义工具" ....

在此输入图像描述

...但是运行转换会抛出NullReferenceException:

Severity    Code    Description Project File    Line    Suppression State
Error       Running transformation: System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.VisualStudio.TextTemplating3FE65EE761BB32C4AE5AEEB1949A6FC143551E0A56C74E6B36511A416E2DE40FB92F7CB1BC6FC7A97FF5B622AE39377BBFB9463480555898ADB8DD6D286C533D.GeneratedTextTransformation.GetProjectItem(ProjectItems items, String subPath) in c:\dev\MyApp\WebApplication3\src\WebApplication3\T4MVC.tt:line 1398
   at Microsoft.VisualStudio.TextTemplating3FE65EE761BB32C4AE5AEEB1949A6FC143551E0A56C74E6B36511A416E2DE40FB92F7CB1BC6FC7A97FF5B622AE39377BBFB9463480555898ADB8DD6D286C533D.GeneratedTextTransformation.GetProjectItem(Project project, String name) in c:\dev\MyApp\WebApplication3\src\WebApplication3\T4MVC.tt:line 1378
   at Microsoft.VisualStudio.TextTemplating3FE65EE761BB32C4AE5AEEB1949A6FC143551E0A56C74E6B36511A416E2DE40FB92F7CB1BC6FC7A97FF5B622AE39377BBFB9463480555898ADB8DD6D286C533D.GeneratedTextTransformation.ProcessAreas(Project project) in c:\dev\MyApp\WebApplication3\src\WebApplication3\T4MVC.tt:line 600
   at Microsoft.VisualStudio.TextTemplating3FE65EE761BB32C4AE5AEEB1949A6FC143551E0A56C74E6B36511A416E2DE40FB92F7CB1BC6FC7A97FF5B622AE39377BBFB9463480555898ADB8DD6D286C533D.GeneratedTextTransformation.PrepareDataToRender(TextTransformation tt) in c:\dev\MyApp\WebApplication3\src\WebApplication3\T4MVC.tt:line 557
   at Microsoft.VisualStudio.TextTemplating3FE65EE761BB32C4AE5AEEB1949A6FC143551E0A56C74E6B36511A416E2DE40FB92F7CB1BC6FC7A97FF5B622AE39377BBFB9463480555898ADB8DD6D286C533D.GeneratedTextTransformation.TransformText() in c:\dev\MyApp\WebApplication3\src\WebApplication3\T4MVC.tt:line 40    WebApplication3 c:\dev\MyApp\WebApplication3\src\WebApplication3\T4MVC.tt   1398    
Run Code Online (Sandbox Code Playgroud)

还有其他建议吗?

另请参见关于ASP.NET 5替代T4MVC相关的问题.

Dav*_*bbo 2

目前,T4MVC 并非设计用于在 ASP.NET 5 项目上运行,因此我对它不起作用并不感到惊讶。

不久前,一个单独的R4MVC项目启动了,使用基于 Roslyn 的方法。然而,这是在 ASP.NET 5 不支持 T4 的时候完成的,现在已经重新审视了这一点。

因此,T4MVC 可能有希望在那里运行,但需要有人花时间看看它离工作还有多远。

我只是迈出了一小步,修复了您点击的空引用(尚未发布,您需要手动修复)。然而,后来我遇到了一种似乎完全失效的情况。

无论如何,这不是全面调查所有问题的地方,但如果有人想要解决这个问题,我们可以在https://github.com/T4MVC/T4MVC上讨论。