使 T4MVC 与 ASP.NET 一起工作 5
Make T4MVC work with ASP.NET 5
根据 this 线程中的最新评论,.tt 模板 将 现在毕竟在 ASP.NET 5 中得到支持,从 [=56= 开始] 更新 1.
哪个恕我直言会很棒,因为在使用 T4MVC 多年之后,我当然不想回到使用魔术字符串作为 route/view 名称(容易出错且重构不友好)。
但是,我不能完全让它与 ASP.NET 5 RC 和 Visual Studio Professional 2015 Update 1 一起使用。
这是我尝试过的方法:
- 将 T4MVC NuGet (3.16.5) 添加到空白 ASP.NET 5 解决方案:不,CoreCLR 抱怨并且没有 .tt 文件添加到项目中:
Error NU1002 The dependency T4MVCExtensions 3.16.5 in project
WebApplication1 does not support framework DNXCore,Version=v5.0.
- 将 NuGet 添加到经典 ASP.NET 4.6 解决方案并手动将
T4MVC.tt
、T4MVC.tt.hooks.t4
和 T4MVC.tt.settings.xml
复制到 ASP.NET 5 解决方案:Visual Studio 确实在 .tt 文件上提供给 "Run Custom Tool"....
...但是 运行 转换抛出一个 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
还有其他建议吗?
另请参阅 this 有关 ASP.NET 5 中 T4MVC 替代方案的相关问题。
在这一点上,T4MVC 并非设计用于 运行 在 ASP.NET 5 个项目上,所以我对它不起作用并不感到惊讶。
不久前,一个单独的 R4MVC 项目开始了,它使用基于 Roslyn 的方法。然而,这是在 ASP.NET 5 没有 T4 支持的时候完成的,现在已经重新访问了。
所以有可能有希望让 T4MVC 运行ning 在那里,但需要有人花时间看看它离工作还有多远。
我只是迈出了一小步,fixed 您点击的空引用(尚未发布,您需要手动修复)。但是,然后我遇到了一个似乎完全成功的情况。
无论如何,这里不是全面调查所有问题的地方,但如果有人想承担,我们可以讨论 https://github.com/T4MVC/T4MVC。
正如 David Ebbo(嘿!)指出的那样,R4MVC - 一个业余项目很久以前就开始了,但由于(当时)Roslyn 编译器的重大更改而停滞不前。
幸运的是,该项目已经恢复,R4MVC 刚刚发布了它的第一个 alpha 版本,很快就会有更多的变化。
虽然该项目的工作方式有所不同,并且未使用 t4 模板,但最终结果是相同的,我们正在努力在不久的将来实现与 T4MVC 的功能对等。
根据 this 线程中的最新评论,.tt 模板 将 现在毕竟在 ASP.NET 5 中得到支持,从 [=56= 开始] 更新 1.
哪个恕我直言会很棒,因为在使用 T4MVC 多年之后,我当然不想回到使用魔术字符串作为 route/view 名称(容易出错且重构不友好)。
但是,我不能完全让它与 ASP.NET 5 RC 和 Visual Studio Professional 2015 Update 1 一起使用。
这是我尝试过的方法:
- 将 T4MVC NuGet (3.16.5) 添加到空白 ASP.NET 5 解决方案:不,CoreCLR 抱怨并且没有 .tt 文件添加到项目中:
Error NU1002 The dependency T4MVCExtensions 3.16.5 in project WebApplication1 does not support framework DNXCore,Version=v5.0.
- 将 NuGet 添加到经典 ASP.NET 4.6 解决方案并手动将
T4MVC.tt
、T4MVC.tt.hooks.t4
和T4MVC.tt.settings.xml
复制到 ASP.NET 5 解决方案:Visual Studio 确实在 .tt 文件上提供给 "Run Custom Tool"....
...但是 运行 转换抛出一个 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
还有其他建议吗?
另请参阅 this 有关 ASP.NET 5 中 T4MVC 替代方案的相关问题。
在这一点上,T4MVC 并非设计用于 运行 在 ASP.NET 5 个项目上,所以我对它不起作用并不感到惊讶。
不久前,一个单独的 R4MVC 项目开始了,它使用基于 Roslyn 的方法。然而,这是在 ASP.NET 5 没有 T4 支持的时候完成的,现在已经重新访问了。
所以有可能有希望让 T4MVC 运行ning 在那里,但需要有人花时间看看它离工作还有多远。
我只是迈出了一小步,fixed 您点击的空引用(尚未发布,您需要手动修复)。但是,然后我遇到了一个似乎完全成功的情况。
无论如何,这里不是全面调查所有问题的地方,但如果有人想承担,我们可以讨论 https://github.com/T4MVC/T4MVC。
正如 David Ebbo(嘿!)指出的那样,R4MVC - 一个业余项目很久以前就开始了,但由于(当时)Roslyn 编译器的重大更改而停滞不前。
幸运的是,该项目已经恢复,R4MVC 刚刚发布了它的第一个 alpha 版本,很快就会有更多的变化。
虽然该项目的工作方式有所不同,并且未使用 t4 模板,但最终结果是相同的,我们正在努力在不久的将来实现与 T4MVC 的功能对等。