Я хочу запустить утилиту t4 TextTransForm.exe на моем сервере сборки в командной строке. Я знаю, что объект DTE и т. Д. Недоступны в командной строке. Но выполнение простого преобразования на шаблоне, который ожидает параметр, также предполагает, что директива параметра не работает в командной строке.Возможны ли параметры передачи текста T4 в командной строке?
C: \ Util> "C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ TextTemplating \ 12.0 \ TextTransform.exe" test.tt -a !! MyParameter тест ошибки: Ошибки были генерируется при инициализации объекта преобразования. Преобразование не будет выполнено. Исключено следующее исключение: System.NullReferenceException: ссылка на объект не установлена в экземпляр объекта. на Microsoft.VisualStudio.TextTemplating9edb37733d3e4e5f96a377656fe05b5c.GeneratedTextTransformation.Initialize() на CallSite.Target (Закрытие, CallSite, объект) на System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid1 [T0] (CallSite сайта, Т0) arg0 на Microsoft.VisualStudio. TextTemplating.TransformationRunner.PerformTransformation()
Это мой шаблон test.tt:
<#@ template language="C#" hostspecific="true" #>
<#@ parameter name="MyParameter" type="System.String" #>
Parameter in expression block: <#= MyParameter #>
Parameter in statement block: <# Write(MyParameter); #>
Глядя на дискуссии, как Get argument value from TextTransform.exe into the template дал мне отпечаток ion он также будет работать в командной строке без установки определенного хоста или Visual Studio.
Так что я делаю что-то не так, или это просто не работает в командной строке?
Согласно документации на https://msdn.microsoft.com/en-us/library/bb126245.aspx вы создали шаблон правильно. –