使T4MVC与ASP.NET 5一起工作

根据此主题中的最新评论,.tttt模板现在终究会在Visual Studio Update 1开始的ASP.NET 5中得到支持。

哪个恕我直言将是伟大的,因为使用T4MVC多年后,我当然不想回到使用魔术字符串的路线/视图名称(容易出错和不重构友好)。

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

以下是我所尝试的:

  • 将T4MVC NuGet(3.16.5)添加到空白的ASP.NET 5解决方案中:nope,CoreCLR抱怨并且没有.tt文件被添加到项目中:
  • 错误NU1002项目WebApplication1中的依赖项T4MVCExtensions 3.16.5不支持框架DNXCore Version = v5.0。

  • 将NuGet添加到传统的ASP.NET 4.6解决方案中,并通过T4MVC.ttT4MVC.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:devMyAppWebApplication3srcWebApplication3T4MVC.tt:line 1398
       at Microsoft.VisualStudio.TextTemplating3FE65EE761BB32C4AE5AEEB1949A6FC143551E0A56C74E6B36511A416E2DE40FB92F7CB1BC6FC7A97FF5B622AE39377BBFB9463480555898ADB8DD6D286C533D.GeneratedTextTransformation.GetProjectItem(Project project, String name) in c:devMyAppWebApplication3srcWebApplication3T4MVC.tt:line 1378
       at Microsoft.VisualStudio.TextTemplating3FE65EE761BB32C4AE5AEEB1949A6FC143551E0A56C74E6B36511A416E2DE40FB92F7CB1BC6FC7A97FF5B622AE39377BBFB9463480555898ADB8DD6D286C533D.GeneratedTextTransformation.ProcessAreas(Project project) in c:devMyAppWebApplication3srcWebApplication3T4MVC.tt:line 600
       at Microsoft.VisualStudio.TextTemplating3FE65EE761BB32C4AE5AEEB1949A6FC143551E0A56C74E6B36511A416E2DE40FB92F7CB1BC6FC7A97FF5B622AE39377BBFB9463480555898ADB8DD6D286C533D.GeneratedTextTransformation.PrepareDataToRender(TextTransformation tt) in c:devMyAppWebApplication3srcWebApplication3T4MVC.tt:line 557
       at Microsoft.VisualStudio.TextTemplating3FE65EE761BB32C4AE5AEEB1949A6FC143551E0A56C74E6B36511A416E2DE40FB92F7CB1BC6FC7A97FF5B622AE39377BBFB9463480555898ADB8DD6D286C533D.GeneratedTextTransformation.TransformText() in c:devMyAppWebApplication3srcWebApplication3T4MVC.tt:line 40    WebApplication3 c:devMyAppWebApplication3srcWebApplication3T4MVC.tt   1398    
    

    还有其他建议吗?

    另请参阅有关ASP.NET 5中T4MVC替代方法的相关问题。


    在这一点上,T4MVC不是为了运行ASP.NET 5项目而设计的,所以我不惊讶它不起作用。

    一段时间后,一个单独的R4MVC项目开始使用基于Roslyn的方法。 但是,这是在ASP.NET 5没有T4支持的情况下完成的,现在已经重新讨论了。

    所以有可能有T4MVC在那里运行,但有人需要投入时间来看看它有多远。

    我只是采取了一小步,并修复了你击中的null ref(尚未发布,你需要手动修复)。 然而,然后我达到了似乎完全交代的状况。

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


    正如David Ebbo(hey!)所指出的那样,R4MVC - 一个侧面项目很久以前就已经开始了,但由于(当时)Roslyn编译器发生了重大变化而停滞不前。

    幸运的是,该项目得到了恢复,R4MVC刚刚发布了它的第一个alpha版本,即将推出更多更改。

    虽然该项目的工作原理有所不同,并且不使用t4模板,但最终结果是相同的,并且我们正努力在不久的将来与T4MVC实现功能平等。

    链接地址: http://www.djcxy.com/p/89373.html

    上一篇: Make T4MVC work with ASP.NET 5

    下一篇: Specifying superuser PostgreSQL password for a Docker Container