Согласно последним комментариям в этой теме, шаблоны .tt будут em> теперь все-таки поддерживается в ASP.NET 5, начиная с Visual Studio Update 1.
Какое ИМХО было бы здорово, потому что после многих лет использования T4MVC я определенно не хочу возвращаться к использованию волшебные строки для имен маршрутов/представлений (подвержены ошибкам и не подходят для рефакторинга).
Однако я не могу заставить его работать с ASP.NET 5 RC и Visual Studio Professional 2015 Update 1.
Вот что я пробовал:
- Добавление T4MVC NuGet (3.16.5) в пустое решение ASP.NET 5: нет , CoreCLR жалуется, и в проект не добавляются файлы .tt:
Ошибка NU1002 Зависимость T4MVCExtensions 3.16.5 в проекте WebApplication1 не поддерживает платформу DNXCore, версия = v5.0.
- Добавьте NuGet в классическое решение ASP.NET 4.6 и вручную скопируйте
T4MVC.tt
,T4MVC.tt.hooks.t4
иT4MVC.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
Любые другие предложения?
См. также этот вопрос об альтернативах T4MVC в ASP.NET 5.
t4
классифицируются как содержимое, и nuget больше не будет импортировать их в ваш проект. То же самое для js или css. Это решает вашу первую загадку. - person Maxime Rouiller   schedule 21.12.2015