Bestimmen Lösung-Konfiguration (debug/release) beim ausführen einer T4-Vorlage

Ich habe einen T4-Vorlage ausgegeben werden können, entweder optimiert, die Inhalte oder die standard-content, basierend auf einer Flagge. Derzeit bin ich manuell die fahne wechseln, basierend auf meine Bedürfnisse.

Was ich gerne tun würde ist die Flagge basierend auf der Konfiguration der Lösung in Visual Studio. Wenn bauen im Debug-Modus, würde ich die Ausgabe der standard-content. Wenn bauen im Release-Modus, würde ich die Optimierung der Inhalte statt. Ich fand einen anderen T4 Frage, dass sieht vielversprechend aus: T4 Text Template - Ist es möglich, Zusammenstellung von Symbolen aus host?

Aber in meinem Fall würde ich wollen, etwas zu tun, wie die folgenden:

<#@ template language="C#" hostspecific="True" 
    compilerOptions="/d:$(ConfigurationName)" #>

Da kann ich verwenden $(SolutionDir) in eine assembly-Direktive:

<#@ assembly name="$(SolutionDir)\myreference.dll" #>

Ich würde denken, der /d:$(ConfigurationName) würde mich dort, wo ich gehen, und dann könnte ich Folgendes tun, um meine Flagge:

<#
#if Debug 
 optimize = false;
#else 
 optimize = true;
#endif 
#>

Ach, das scheint nicht zu funktionieren. Ich habe auch versucht mit:

Host.ResolveParameterValue("-", "-", "ConfigurationName");

Ebenfalls ohne Erfolg. Irgendwelche Ideen?

InformationsquelleAutor Emil Lerch | 2011-04-07
Schreibe einen Kommentar