У меня есть шаблон T4, который может выводить либо оптимизированный, либо стандартный контент на основе флага. В настоящее время я вручную меняю флаг, исходя из своих потребностей.
Что бы я хотел сделать, так это установить флаг на основе конфигурации решения в Visual Studio. Если установить сборку в режиме отладки, я бы выводил стандартный контент. Если настроен на сборку в режиме выпуска, я бы вместо этого оптимизировал контент. Я нашел еще один многообещающий вопрос T4: Текстовый шаблон T4 - Можно ли получить символы компиляции с хоста?
Однако в моем случае я бы хотел сделать что-то вроде следующего:
<#@ template language="C#" hostspecific="True"
compilerOptions="/d:$(ConfigurationName)" #>
Поскольку я могу использовать $ (SolutionDir) в директиве сборки:
<#@ assembly name="$(SolutionDir)\myreference.dll" #>
Я бы подумал, что / d: $ (ConfigurationName) доставит меня туда, куда мне нужно, и тогда я могу сделать следующее, чтобы установить свой флаг:
<#
#if Debug
optimize = false;
#else
optimize = true;
#endif
#>
Увы, похоже, это не работает. Я также пытался использовать:
Host.ResolveParameterValue("-", "-", "ConfigurationName");
Тоже безрезультатно. Любые идеи?