У меня есть шаблон 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");
Также безрезультатно. Есть идеи?