Gör så här: Kompilera villkorligt med spårning och felsökning
Kommentar
Den här artikeln är specifik för .NET Framework. Det gäller inte för nyare implementeringar av .NET, inklusive .NET 6 och senare versioner.
När du felsöker ett program under utvecklingen går både spårnings- och felsökningsutdata till utdatafönstret i Visual Studio. Men om du vill inkludera spårningsfunktioner i ett distribuerat program måste du kompilera dina instrumenterade program med trace-kompilatordirektivet aktiverat. På så sätt kan spårningskod kompileras till versionsversionen av ditt program. Om du inte aktiverar TRACE-direktivet ignoreras all spårningskod under kompileringen och ingår inte i den körbara kod som du ska distribuera.
Både spårnings- och felsökningsmetoderna har associerade villkorsattribut. Om det villkorsstyrda attributet för spårning till exempel är sant inkluderas alla spårningssatser i en sammansättning (en kompilerad .exe fil eller .dll); om det villkorliga attributet Trace är falskt inkluderas inte spårningsuttrycken.
Du kan ha antingen villkorsattributet Trace eller Debug aktiverat för en version, eller både och eller ingetdera. Det finns alltså fyra typer av bygge: Felsökning, Spårning, båda eller ingen av dem. Vissa versionsversioner för produktionsdistribution kan inte innehålla någotdera. de flesta felsökningsversioner innehåller båda.
Du kan ange kompileringsinställningarna för ditt program på flera sätt:
Egenskapssidorna
Kommandoraden
#CONST (för Visual Basic) och #define (för C#)
Så här ändrar du kompileringsinställningarna från dialogrutan egenskapssidor
Högerklicka på projektnoden i Istraživač rešenja.
Välj Egenskaper på snabbmenyn.
I Visual Basic klickar du på fliken Kompilering i den vänstra rutan på egenskapssidan och klickar sedan på knappen Avancerade kompileringsalternativ för att visa dialogrutan Avancerade kompilatorinställningar . Markera kryssrutorna för de kompilatorinställningar som du vill aktivera. Avmarkera kryssrutorna för inställningar som du vill inaktivera.
I C# klickar du på fliken Skapa i den vänstra rutan på egenskapssidan och markerar sedan kryssrutorna för de kompilatorinställningar som du vill aktivera. Avmarkera kryssrutorna för inställningar som du vill inaktivera.
Kompilera instrumenterad kod med hjälp av kommandoraden
Ange en villkorsstyrd kompilatorväxel på kommandoraden. Kompilatorn innehåller spårnings- eller felsökningskod i den körbara filen.
Följande kompilatorinstruktion som anges på kommandoraden skulle till exempel inkludera spårningskoden i en kompilerad körbar fil:
För Visual Basic: vbc -r:System.dll -d:TRACE=TRUE -d:DEBUG=FALSE MyApplication.vb
För C#: csc -r:System.dll -d:TRACE -d:DEBUG=FALSE MyApplication.cs
Dricks
Om du vill kompilera mer än en programfil lämnar du ett tomt utrymme mellan filnamnen, till exempel MyApplication1.vb MyApplication2.vb MyApplication3.vb eller MyApplication1.cs MyApplication2.cs MyApplication3.cs.
Innebörden av de direktiv för villkorsstyrd kompilering som används i exemplen ovan är följande:
Direktiv Innebörd vbc
Visual Basic-kompilator csc
C#-kompilator -r:
Refererar till en extern sammansättning (EXE eller DLL) -d:
Definierar en villkorsstyrd kompileringssymbol Kommentar
Du måste stava TRACE eller DEBUG med versaler. Mer information om kommandona för villkorlig kompilering finns i
vbc /?
(för Visual Basic) ellercsc /?
(för C#) i kommandotolken. Mer information finns i Skapa från kommandoraden (C#) eller Anropa kommandoradskompilatorn (Visual Basic).
Så här utför du villkorlig kompilering med hjälp av #CONST eller #define
Ange lämplig instruktion för programmeringsspråket högst upp i källkodsfilen.
Språk Utdrag Result Visual Basic #CONST TRACE = true Aktiverar spårning #CONST TRACE = false Inaktiverar spårning #CONST DEBUG = true Aktiverar felsökning #CONST DEBUG = false Inaktiverar felsökning C# #define TRACE Aktiverar spårning #undef TRACE Inaktiverar spårning #define FELSÖKNING Aktiverar felsökning #undef FELSÖKNING Inaktiverar felsökning
Inaktivera spårning eller felsökning
Ta bort kompilatordirektivet från källkoden.
- eller -
Kommentera ut kompilatordirektivet.
Kommentar
När du är redo att kompilera kan du antingen välja Skapa från menyn Skapa eller använda kommandoradsmetoden men utan att skriva d: för att definiera villkorsstyrda kompileringssymboler.