Wie kann ich bedingt aktivieren, werden die Attribute in C#? "#falls DEBUGGEN" funktioniert nicht

Den guten, alten Präprozessor-Direktive in C# scheinen gut zu funktionieren, wenn ich Schreibe:

#if DEBUG
...
(Some code)
...
#endif

Jedoch, Attribute eingeschlossen in den bedingten block erscheinen, um weiter verarbeitet zu werden, und ich bekomme Fehler, der angibt, wie. Zum Beispiel, um ein [AssemblyVersion(...)] innerhalb der bedingten block wird keine Auswirkungen haben.

Kann ich ins Detail gehen, warum wir wollen, bedingt das ignorieren der [AssemblyVersion(..)], aber es ist irrelevant. Irgendwelche Ideen?

  • Ein Beispiel für dieses Verhalten ist, definieren Sie zwei AssemblyVersion Attribute, und im bedingten "#if DEBUG" - block.
  • Das nennt man Präprozessor-Direktive und in C# ist es eigentlich erledigt der compiler.
  • Wenn Sie zwei AssemblyVersion-Attribute mit einem innerhalb der "#if DEBUG" - block, ich hoffe, dass der andere sitzt zwischen den "#else" und "#endif"?
  • Es ist dynamisch Hinzugefügt wird zur build-Zeit in der release-Konfiguration durch einen automatisierten build-Prozess. BTW, dies ist VS 2008. Das problem geschieht nicht mit einem anderen Projekt, das ich von Grund auf neu erstellt. Dies ist Bizarr.
  • Können Sie ein Beispiel, wie die Ausgabe aussieht?
InformationsquelleAutor Sean Aitken | 2009-06-11
Schreibe einen Kommentar