У меня есть шаблон T4, который может выводить либо оптимизированный контент, либо стандартный контент на основе флага. В настоящее время я вручную меняю флаг на основе моих потребностей.
Мне бы очень хотелось установить флажок на основе конфигурации решения в Visual Studio. Если установить для построения в режиме отладки, я бы выводил стандартный контент. Если установить в режиме Release, я бы оптимизировал контент. Я нашел еще один вопрос T4, который выглядит многообещающим: T4 Text Template - можно ли получить символы компиляции с хоста?
Однако в моем случае я хотел бы сделать что-то вроде следующего:
<#@ 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");
Также безрезультатно. Любые идеи?