Problem związany jest z faktem, że widoki są kompilowane tylko wówczas, gdy uruchamiasz aplikację, więc zdefiniowany przez ciebie symbol TEST
nie jest już stosowany przez kompilator, ponieważ nie ma wiedzy o nim.
Zakładając, że używasz C# trzeba skonfigurować kompilator do korzystania z TEST
symbol przy budowie widoki, a do tego trzeba override its configuration w Web.config
przy użyciu następujących:
<system.codedom>
<compilers>
<compiler
language="c#;cs;csharp"
extension=".cs"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
compilerOptions="/define:TEST"
warningLevel="1" />
</compilers>
</system.codedom>
Ważne jest to, że definiujesz compilerOptions="/define:TEST"
. Resztę konfiguracji należy dostosować do konkretnych potrzeb, na przykład przełączać się między .NET 2.0 lub .NET 4.0.
Jeśli zastosujesz to bezpośrednio w Web.config
, zadziała, ale zdefiniuje za każdym razem TEST
. Więc tak naprawdę powinieneś użyć Web.config transformations, aby symbol został zastosowany tylko dla prawidłowych konfiguracji kompilacji.
Tak, teraz tekst nie jest "szary" - ale działa, gdy usunę "TEST" lub nie ... – ParPar
Musisz zsynchronizować obie definicje 'TESTU '. Jeśli usuniesz go z właściwości projektu, musisz również usunąć go z konfiguracji. –
Rozumiem, wielkie dzięki! – ParPar