Globale Präprozessor Direktive



  • Hallo,

    ich habe eine allgemeine Frage zu Visual Studio, und nicht unbedingt direkt zu C#.

    In Visual Studio definiere ich eine eigene globale Präprozessor-Direktive unter "Build/Project/Build/Conditional Compilation Symbols" (ich habe nur die englische Version von VS).

    Ich möchte erreichen, daß das Kompilieren verhindert wird, wenn diese globale Präprozessor-Direktive einen bestimmten Wert nicht hat.

    Liest sich jetzt bestimmt merkwürdig. Hintergrund ist, daß Fremde mein Projekt kompilieren. Sie *müssen* dabei einen von zwei von mir definierte Präprozessor-Direktiven setzen. Im Projekt - besteht aus mehreren cs-Dateien - werden diese beiden Direktiven vielfach mit #if etc. abgefragt.

    Wäre vergessen worden die Direktive zu setzen oder ein falscher Wert gesetzt, dann ergäbe es einen Superhaufen an Kompilerfehlern. Das will ich vermeiden; stattdessen will ich erreichen, daß das Kompilieren sofort abgebrochen wird.

    Gibt es da einen Weg, daß Visual Studio sich mitteilt, wenn ein oder mehrere bestimmte Werte als globale Präprozessor-Direktive nicht gesetzt wurden?

    Grüße, Hoppelmoppel



  • Naja du könntest einen MSBuild-Task schreiben.



  • Oder aber am Anfang jeder Datei, welche die Direktiven benutzen:

    #if !DIRECTIVE1 && !DIRECTIVE2
    #error Please define in the project settings DIRECTIVE1 or DIRECTIVE2!
    #endif
    

  • Administrator

    Hast du es schon mal mit #error probiert?

    Edit: Zu spät.

    Grüssli



  • Super, vielen Dank an Euch für die Tips, das Problem ist gelöst. 👍


Anmelden zum Antworten