Megosztás a következőn keresztül:


Útmutató: Feltételes fordítás nyomkövetéssel és hibakereséssel

Feljegyzés

Ez a cikk a .NET-keretrendszer vonatkozik. Ez nem vonatkozik a .NET újabb implementációira, beleértve a .NET 6-os és újabb verzióit.

Miközben fejlesztés közben hibakeresést futtat egy alkalmazáson, a nyomkövetési és hibakeresési kimenet a Visual Studióban a Kimenet ablakba kerül. Ha azonban nyomkövetési funkciókat szeretne bevonni egy üzembe helyezett alkalmazásba, a rendszerezett alkalmazásokat úgy kell lefordítania, hogy engedélyezve van a TRACE fordító irányelve. Ez lehetővé teszi a nyomkövetési kód fordítását az alkalmazás kiadási verziójába. Ha nem engedélyezi a TRACE-direktívát, a rendszer figyelmen kívül hagyja az összes nyomkövetési kódot a fordítás során, és nem szerepel az üzembe helyezendő végrehajtható kódban.

Mind a nyomkövetési, mind a hibakeresési metódushoz társított feltételes attribútumok tartoznak. Ha például a nyomkövetés feltételes attribútuma igaz, az összes nyomkövetési utasítás szerepel egy szerelvényben (egy lefordított .exe fájlban vagy .dll); ha a nyomkövetési feltételes attribútum hamis, a nyomkövetési utasítások nem lesznek belefoglalva.

A Trace vagy a Debug feltételes attribútum be van kapcsolva egy buildhez, vagy mindkettőhöz, vagy egyikhez sem. Így négy buildtípus létezik: Hibakeresés, Nyomkövetés, mindkettő vagy egyik sem. Az éles környezet egyes kiadási buildjei egyiket sem tartalmazhatják; a legtöbb hibakeresési build mindkettőt tartalmazza.

Az alkalmazás fordítóbeállításait többféleképpen is megadhatja:

  • A tulajdonságlapok

  • A parancssor

  • #CONST (Visual Basichez) és #define (C#-hoz)

Fordítási beállítások módosítása a tulajdonságlapok párbeszédpanelről

  1. Kattintson a jobb gombbal a projektcsomópontra a Megoldáskezelő.

  2. Válassza a Helyi menü Tulajdonságok elemét .

    • A Visual Basicben kattintson a Tulajdonságlap bal oldali ablaktábláján a Fordítás fülre, majd a Speciális fordítási beállítások gombra a Speciális fordítóbeállítások párbeszédpanel megjelenítéséhez. Jelölje be az engedélyezni kívánt fordítóbeállítások jelölőnégyzetét. Törölje a letiltani kívánt beállítások jelölőnégyzetének jelölését.

    • A C#-ban kattintson a tulajdonságlap bal oldali ablaktábláján a Build fülre, majd jelölje be az engedélyezni kívánt fordítóbeállítások jelölőnégyzetét. Törölje a letiltani kívánt beállítások jelölőnégyzetének jelölését.

Rendszerezett kód fordítása a parancssor használatával

  1. Állítson be egy feltételes fordítókapcsolót a parancssorban. A fordító nyomkövetési vagy hibakeresési kódot fog tartalmazni a végrehajtható fájlban.

    A parancssorba beírt következő fordítói utasítás például tartalmazza a nyomkövetési kódot egy lefordított végrehajtható fájlban:

    Visual Basic esetén: vbc -r:System.dll -d:TRACE=TRUE -d:DEBUG=FALSE MyApplication.vb

    C#: csc -r:System.dll -d:TRACE -d:DEBUG=FALSE MyApplication.cs

    Tipp.

    Több alkalmazásfájl fordításához hagyjon üres helyet a fájlnevek között, például MyApplication1.vb MyApplication2.vb MyApplication3.vb vagy MyApplication1.cs MyApplication2.cs MyApplication3.cs.

    A fenti példákban használt feltételes fordítási irányelvek jelentése a következő:

    Irányelv Értelmezés
    vbc Visual Basic fordító
    csc C# compiler (C#-fordítóprogram)
    -r: Külső szerelvényre hivatkozik (EXE vagy DLL)
    -d: Feltételes fordítási szimbólum definiálása

    Feljegyzés

    A TRACE vagy a DEBUG szöveget nagybetűkkel kell írnia. A feltételes fordítási parancsokkal kapcsolatos további információkért írja be vbc /? (Visual Basic esetén) vagy csc /? (C#esetén) a parancssorba. További információ: Build from the Parancssor (C#) vagy Invoking the Command-Line Compiler (Visual Basic).

Feltételes fordítás végrehajtása #CONST vagy #define használatával

  1. Írja be a programozási nyelv megfelelő utasítását a forráskódfájl tetején.

    Nyelv Utasítás Eredmény
    Visual Basic #CONST TRACE = true Nyomkövetés engedélyezése
    #CONST TRACE = false Letiltja a nyomkövetést
    #CONST HIBAKERESÉS = igaz Lehetővé teszi a hibakeresést
    #CONST HIBAKERESÉS = hamis Letiltja a hibakeresést
    C# #define TRACE Nyomkövetés engedélyezése
    #undef TRACE Letiltja a nyomkövetést
    #DEFINE HIBAKERESÉS Lehetővé teszi a hibakeresést
    #undef HIBAKERESÉS Letiltja a hibakeresést

Nyomkövetés vagy hibakeresés letiltása

Törölje a fordító irányelvét a forráskódból.

-Vagy-

Megjegyzés a fordítóról szóló irányelvhez.

Feljegyzés

Ha készen áll a fordításra, a Build menüben választhatja a Build lehetőséget, vagy használhatja a parancssori metódust, de a d: beírása nélkül feltételes fordítási szimbólumok definiálásához.

Lásd még