Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alábbi lehetőségek speciális forgatókönyveket támogatnak. Az új MSBuild szintaxis félkövér formátumban jelenik meg. A régebbi csc.exe szintaxis a következőben code stylelátható: .
-
StartupObject /
-main: Adja meg a belépési pontot tartalmazó típust. -
PdbFile /
-pdb: Adja meg a hibakeresési információs fájl nevét. -
Elérési úttérkép /
-pathmap: Adja meg a fordító által a forrásútvonalak neveinek kimenetéhez tartozó leképezést. -
ApplicationConfiguration /
-appconfig: Szerelvénykötési beállításokat tartalmazó alkalmazáskonfigurációs fájl megadása. -
AdditionalLibPaths /
-lib: Adjon meg további könyvtárakat a hivatkozások kereséséhez. -
GenerateFullPaths /
-fullpath: A fordító teljesen minősített elérési utakat hoz létre. -
PreferredUILang /
-preferreduilang: Adja meg az előnyben részesített kimeneti nyelv nevét. -
BaseAddress /
-baseaddress: Adja meg a létrehozandó kódtár alapcímét. -
ChecksumAlgorithm /
-checksumalgorithm: A PDB-ben tárolt forrásfájl-ellenőrzőösszeg kiszámítására szolgáló algoritmus megadása. -
CodePage /
-codepage: Adja meg a forrásfájlok megnyitásakor használni kívánt kódlapot. -
Utf8Output /
-utf8output: Kimeneti fordítóüzenetek az UTF-8 kódolásban. -
FileAlignment /
-filealign: Adja meg a kimeneti fájlszakaszokhoz használt igazítást. -
ErrorEndLocation /
-errorendlocation: Az egyes hibák végponthelyének kimeneti sora és oszlopa. -
NoStandardLib /
-nostdlib: Ne hivatkozzon standard kódtárra. (Megakadályozza a .NET alaposztálykódtárra való automatikus hivatkozást – mscorlib.dll .NET-keretrendszer-projektekben, System.Private.CoreLib.dll modern .NET-projektekben.) -
SubsystemVersion /
-subsystemversion: Adja meg a szerelvény alrendszerverzióját. -
ModuleAssemblyName /
-moduleassemblyname: Annak a szerelvénynek a neve, amely a modul része lesz. -
ReportIVTs /
-reportivts: További információk System.Runtime.CompilerServices.InternalsVisibleToAttribute készítése.
A fájl egyik <PropertyGroup> eleméhez a következő lehetőségek bármelyikét hozzáadhatja *.csproj :
<PropertyGroup>
<StartupObject>...</StartupObject>
...
</PropertyGroup>
StartupObject
Ez a beállítás azt az osztályt adja meg, amely a program belépési pontját tartalmazza, ha a projekt egy metódussal több típust Main is tartalmaz. Ha pontosan egy elfogadható Main módszer van a projektben, a rendszer figyelmen kívül hagyja ezt a beállítást.
<StartupObject>MyNamespace.Program</StartupObject>
Hol Program található a metódust tartalmazó Main típus. Ha erre a beállításra van szükség (több Main metódus létezik), a megadott osztálynévnek teljes értékűnek kell lennie; tartalmaznia kell az osztályt tartalmazó teljes névteret, majd az osztály nevét. Ha például a metódus a MainProgram névtér osztályán MyApplication.Core belül található, a fordító beállításának meg kell lennie -main:MyApplication.Core.Program. Ha az osztály a globális névtérben van, a teljes név megegyezik az egyszerű osztály nevével (például Program nem MyNamespace.Program).
Feljegyzés
Ez a beállítás nem használható olyan projektekhez, amelyek felső szintű utasításokat tartalmaznak, még akkor sem, ha a projekt egy vagy több Main metódust tartalmaz.
PdbFile
A PdbFile fordítóbeállítás a hibakeresési szimbólumfájl nevét és helyét adja meg. Az filename érték megadja a hibakeresési szimbólumfájl nevét és helyét.
<PdbFile>filename</PdbFile>
A DebugType megadásakor a fordító létrehoz egy .pdb fájlt ugyanabban a könyvtárban, ahol a fordító létrehozza a kimeneti fájlt (.exe vagy .dll). A .pdb fájl alapfájljának neve megegyezik a kimeneti fájl nevével. A PdbFile lehetővé teszi a .pdb fájl nem pontos fájlnevének és helyének megadását. Ez a fordítóbeállítás nem állítható be a Visual Studio fejlesztői környezetében, és programozott módon sem módosítható.
Elérési úttérkép
Feljegyzés
Az Elérési úttérkép megadása megakadályozza, hogy a töréspontok a helyi hibakeresési buildekben működjön. Csak az éles vagy folyamatos integrációs buildekhez állítsa be a PathMap-et.
A PathMap-fordító beállítás megadja, hogyan képezheti le a fizikai útvonalakat a forrásútvonalak neveinek a fordító által történő kimenetéhez. Ez a beállítás megfelelteti az egyes fizikai elérési utakat azon a gépen, amelyen a fordító egy megfelelő elérési útra fut, amelyet a kimeneti fájlokban kell írni. Az alábbi példában path1 az aktuális környezetben található forrásfájlok teljes elérési útja látható, és sourcePath1 a forrás elérési útja bármely kimeneti fájlban helyettesíthető path1 . Több megfeleltetett forrásútvonal megadásához vesszővel kell elválasztani azokat.
<PathMap>path1=sourcePath1,path2=sourcePath2</PathMap>
A fordító a következő okokból írja be a forrás elérési útját a kimenetébe:
- A forrás elérési útja argumentumot helyettesít, ha a CallerFilePathAttribute paraméter egy választható paraméterre van alkalmazva.
- A forrás elérési útja egy PDB-fájlba van beágyazva.
- A PDB-fájl elérési útja egy PE (hordozható végrehajtható) fájlba van beágyazva.
ApplicationConfiguration
Az ApplicationConfiguration fordítóbeállítás lehetővé teszi, hogy egy C#-alkalmazás a szerelvény alkalmazáskonfigurációs (app.config) fájljának helyét a közös nyelvi futtatókörnyezetbe (CLR) adja meg a szerelvény kötési idején.
<ApplicationConfiguration>file</ApplicationConfiguration>
Hol file található az alkalmazáskonfigurációs fájl, amely szerelvénykötési beállításokat tartalmaz. Az ApplicationConfiguration egyik olyan speciális forgatókönyv, amelyben egy szerelvénynek egyszerre kell hivatkoznia egy adott referenciaszerelvény .NET-keretrendszer verziójára és a Silverlight-verzióra vonatkozó .NET-keretrendszer. Előfordulhat például, hogy egy Windows megjelenítési alaprendszer (WPF) nyelven írt XAML-tervezőnek a WPF Desktopra, a tervező felhasználói felületére és a Silverlight részét képező WPF-részhalmazra is hivatkoznia kell. Ugyanannak a tervezőszerelvénynek mindkét szerelvényhez hozzá kell férnie. Alapértelmezés szerint a különálló hivatkozások fordítóhibát okoznak, mivel a szerelvénykötés egyenértékűnek látja a két szerelvényt. Az ApplicationConfiguration fordítóbeállítással megadhatja az app.config fájl helyét, amely letiltja az alapértelmezett viselkedést egy <supportPortability> címke használatával, ahogyan az az alábbi példában látható.
<supportPortability PKT="7cec85d7bea7798e" enable="false"/>
A fordító átadja a fájl helyét a CLR szerelvénykötési logikájának.
Feljegyzés
A projektben már beállított app.config fájl használatához adjon hozzá tulajdonságcímkét <UseAppConfigForCompiler> a .csproj fájlhoz, és állítsa az értékét a következőre true: . Egy másik app.config fájl megadásához adjon hozzá tulajdonságcímkét <AppConfigForCompiler> , és állítsa az értékét a fájl helyére.
Az alábbi példa egy app.config fájlt mutat be, amely lehetővé teszi, hogy az alkalmazás mind a .NET-keretrendszer-implementációra, mind a silverlight-implementáció .NET-keretrendszer hivatkozik a mindkét implementációban található .NET-keretrendszer-szerelvényre. Az ApplicationConfiguration fordítóbeállítás az app.config fájl helyét határozza meg.
<configuration>
<runtime>
<assemblyBinding>
<supportPortability PKT="7cec85d7bea7798e" enable="false"/>
<supportPortability PKT="31bf3856ad364e35" enable="false"/>
</assemblyBinding>
</runtime>
</configuration>
AdditionalLibPaths
Az AdditionalLibPaths beállítás a Hivatkozások beállítással hivatkozott szerelvények helyét adja meg.
<AdditionalLibPaths>dir1[,dir2]</AdditionalLibPaths>
Hol dir1 található az a könyvtár, amelyben a fordító megkeresheti, ha a hivatkozott szerelvény nem található az aktuális munkakönyvtárban (abban a könyvtárban, amelyből a fordítót meghívja) vagy a közös nyelvi futtatókörnyezet rendszerkönyvtárában.
dir2 egy vagy több további könyvtár, amelyekben szerelvényhivatkozásokat kereshet. Különítse el a címtárneveket vesszővel, szóköz nélkül. A fordító olyan szerelvényhivatkozásokat keres, amelyek nem teljes mértékben minősítettek az alábbi sorrendben:
- Aktuális munkakönyvtár.
- A közös nyelvi futtatókörnyezeti rendszer könyvtára.
- Az AdditionalLibPaths által megadott könyvtárak.
- A LIB környezeti változó által megadott könyvtárak.
A Hivatkozás használatával szerelvényhivatkozást adhat meg. Az AdditionalLibPaths additív. Ha többször adja meg, az bármely korábbi értékhez hozzáfűz. Mivel a függő szerelvény elérési útja nincs megadva a szerelvényjegyzékben, az alkalmazás megkeresi és használja a szerelvényt a globális szerelvény-gyorsítótárban. A szerelvényre hivatkozó fordító nem azt jelenti, hogy a közös nyelvi futtatókörnyezet futásidőben megkeresheti és betöltheti a szerelvényt. A runtime a hivatkozott szerelvények keresésével kapcsolatos részletekért tekintse meg, hogy a futtatókörnyezet hogyan találja meg a szerelvényeket.
GenerateFullPaths
A GenerateFullPaths beállítás hatására a fordító megadja a fájl teljes elérési útját fordítási hibák és figyelmeztetések listázásakor.
<GenerateFullPaths>true</GenerateFullPaths>
Alapértelmezés szerint a fordításból eredő hibák és figyelmeztetések megadják annak a fájlnak a nevét, amelyben hiba történt. A GenerateFullPaths beállítás hatására a fordító megadja a fájl teljes elérési útját. Ez a fordítóbeállítás nem érhető el a Visual Studióban, és programozott módon nem módosítható.
PreferredUILang
A PreferáltUILang fordító beállítással megadhatja, hogy a C#-fordító milyen nyelven jeleníti meg a kimenetet, például hibaüzeneteket.
<PreferredUILang>language</PreferredUILang>
Hol language található a fordító kimenetéhez használni kívánt nyelv nyelvének neve . A PreferredUILang fordítóval megadhatja azt a nyelvet, amelyet a C#-fordító használni szeretne a hibaüzenetekhez és más parancssori kimenetekhez. Ha nincs telepítve a nyelv nyelvi csomagja, a rendszer ehelyett az operációs rendszer nyelvi beállítását használja.
BaseAddress
A BaseAddress beállítással megadhatja azt az elsődleges alapcímet, amelybe betölt egy DLL-t. További információ arról, hogy mikor és miért érdemes ezt a lehetőséget használni, olvassa el Larry Osterman webnaplóját.
<BaseAddress>address</BaseAddress>
Hol address található a DLL alapcíme. Ez a cím megadható decimális, hexadecimális vagy oktális számként. A DLL alapértelmezett alapcímét a .NET közös nyelvi futtatókörnyezete állítja be. A címben szereplő alsórendű szó kerekítve lesz. Ha például megadja 0x11110001, akkor a kerekítés a következőre 0x11110000lesz kerekítve: . A DLL aláírási folyamatának befejezéséhez használja a SN.EXE az -R beállítással.
ChecksumAlgorithm
Ez a beállítás szabályozza az ellenőrzőösszeg-algoritmust, amelyet a forrásfájlok kódolásához használunk a PDB-ben.
<ChecksumAlgorithm>algorithm</ChecksumAlgorithm>
Az algorithm értéknek SHA1 vagy (alapértelmezett) vagy SHA256.
CodePage
Ez a beállítás megadja, hogy melyik kódlapot használja a fordítás során, ha a szükséges oldal nem a rendszer jelenlegi alapértelmezett kódlapja.
<CodePage>id</CodePage>
Hol id található annak a kódlapnak az azonosítója, amelyet a fordításban lévő összes forráskódfájlhoz használni kell. A fordító először UTF-8-ként próbálja értelmezni az összes forrásfájlt. Ha a forráskódfájlok nem UTF-8 kódolásban vannak, és 7 bites ASCII-karaktereken kívüli karaktereket használnak, a CodePage beállítással adja meg, hogy melyik kódlapot kell használni.
A CodePage a fordításban lévő összes forráskódfájlra vonatkozik. A rendszer által támogatott kódlapok megkereséséről a GetCPInfo című témakörben olvashat.
Utf8Output
Az Utf8Output beállítás UTF-8 kódolással jeleníti meg a fordító kimenetét.
<Utf8Output>true</Utf8Output>
Egyes nemzetközi konfigurációkban a fordító kimenete nem jeleníthető meg megfelelően a konzolon. Használja az Utf8Output parancsot , és irányítsa át a fordító kimenetét egy fájlba.
FileAlignment
A FileAlignment beállítással megadhatja a kimeneti fájl szakaszainak méretét. Az érvényes értékek: 512, 1024, 2048, 4096 és 8192. Ezek az értékek bájtban vannak.
<FileAlignment>number</FileAlignment>
A FileAlignment beállítást a Projekt buildtulajdonságainakSpeciális lapján állíthatja be a Visual Studióban. Minden szakasz egy olyan határvonalhoz van igazítva, amely a FileAlignment érték többszöröse. Nincs rögzített alapértelmezett érték. Ha a FileAlignment nincs megadva, a közös nyelvi futtatókörnyezet a fordításkor alapértelmezett értéket választ. A szakasz méretének megadásával befolyásolhatja a kimeneti fájl méretét. A szakaszméret módosítása hasznos lehet a kisebb eszközökön futó programok esetében. A DUMPBIN használatával megtekintheti a kimeneti fájl szakaszaival kapcsolatos információkat.
ErrorEndLocation
Utasítja a fordítót, hogy az egyes hibák végpontjának sorát és oszlopát adja meg.
<ErrorEndLocation>true</ErrorEndLocation>
Alapértelmezés szerint a fordító minden hibához és figyelmeztetéshez megírja a forrás kezdő helyét. Ha ez a beállítás igaz értékre van állítva, a fordító az egyes hibák és figyelmeztetések kezdő és záró helyét is megírja.
NoStandardLib
A NoStandardLib megakadályozza a .NET alaposztálytárra való automatikus hivatkozást. A .NET-keretrendszer projektjeiben ez mscorlib.dll, míg a modern .NET-projektekben ez System.Private.CoreLib.dll. Mindkét szerelvény meghatározza a teljes rendszernévteret.
<NoStandardLib>true</NoStandardLib>
Ezt a lehetőséget akkor használja, ha saját rendszernévteret és objektumokat szeretne definiálni vagy létrehozni. Ha nem adja meg a NoStandardLib értéket, a rendszer automatikusan hivatkozik a megfelelő alaposztály-kódtárra (ugyanaz, mint a beállítás).<NoStandardLib>false</NoStandardLib>
SubsystemVersion
Meghatározza annak az alrendszernek a minimális verzióját, amelyen a végrehajtható fájl fut. Ez a beállítás általában biztosítja, hogy a végrehajtható fájl olyan biztonsági funkciókat használjon, amelyek nem érhetők el a Windows régebbi verzióiban.
Feljegyzés
Az alrendszer megadásához használja az OutputType fordítót.
<SubsystemVersion>major.minor</SubsystemVersion>
Adja major.minor meg az alrendszer minimálisan szükséges verzióját a fő- és alverziók pont jelölésében kifejezve. Megadhatja például, hogy egy alkalmazás nem futtatható Windows 7-nél régebbi operációs rendszeren. Állítsa a beállítás értékét 6.01 értékre, ahogyan azt a cikk későbbi táblázata ismerteti. Az értékek major egész számként és minor egészként is megadhatók. A verzió első minor nullái nem módosítják a verziót, de a záró nullák igen. A 6.1 és a 6.01 például ugyanarra a verzióra hivatkozik, de a 6.10 egy másik verzióra hivatkozik. Javasoljuk, hogy az alverziót két számjegyként fejezze ki a keveredés elkerülése érdekében.
Az alábbi táblázat a Windows általános alrendszerverzióit sorolja fel.
| Windows-verzió | Alrendszer verziója |
|---|---|
| Windows Server 2003 rendszer | 5.02 |
| Windows Vista | 6,00 |
| Windows 7 | 6.01 |
| Windows Server 2008 | 6.01 |
| Windows 8 | 6,02 |
| Windows 8.1 | 6.03 |
| Windows 10 | 6.04 |
| Windows 11 | 6.04 |
A SubsystemVersion fordítóbeállítás alapértelmezett értéke a következő listában szereplő feltételektől függ:
- Az alapértelmezett érték 6,02, ha az alábbi lista valamelyik fordítóbeállítása be van állítva:
- Az alapértelmezett érték az MSBuild használata esetén a 6.00, a .NET-keretrendszer 4.5-ös vagy újabb verziója, és a listában korábban megadott fordítóbeállítások egyikét sem állította be.
- A modern .NET-projektek esetében az alapértelmezett érték a 6.00, amely lehetővé teszi, hogy az alkalmazás Windows Vista és újabb verziókon fusson.
- Az alapértelmezett érték 4,00, ha az előző feltételek egyike sem igaz.
ModuleAssemblyName
Annak a szerelvénynek a nevét adja meg, amelyhez a .netmodule nem nyilvános típusok férhetnek hozzá.
<ModuleAssemblyName>assembly_name</ModuleAssemblyName>
A ModuleAssemblyName a .netmodule létrehozásakor használható, és ahol a következő feltételek teljesülnek:
- A .netmodule-nak hozzáférésre van szüksége a nem nyilvános típusokhoz egy meglévő szerelvényben.
- Ismeri annak a szerelvénynek a nevét, amelybe a .netmodule épül.
- A meglévő szerelvény hozzáférést adott a barát szerelvényének ahhoz a szerelvényhez, amelybe a .netmodule épül.
A .netmodulok készítésével kapcsolatos további információkért lásd a modulOutputType beállítását. Az ismerős szerelvényekről további információt a Friend Assemblies című témakörben talál.
ReportIVTs
További diagnosztikai információk System.Runtime.CompilerServices.InternalsVisibleToAttribute engedélyezése vagy letiltása a fordítás során:
<ReportIVTs>true</ReportIVTs>
A diagnosztikát akkor engedélyezi a rendszer, ha az elem tartalma le van truetiltva, ha falsevan, vagy nincs jelen.
A ReportIVTs a következő információkat jelenti, ha engedélyezve van:
- A nem elérhető tagok diagnosztikái tartalmazzák a forrásszerelvényt, ha eltérnek az aktuális szerelvényétől.
- A fordító kinyomtatja a lefordított projekt szerelvény-identitását, szerelvénynevét és nyilvános kulcsát.
- Minden, a fordítónak átadott hivatkozáshoz kinyomtat;
- A referencia szerelvény-identitása
- Az, hogy a referencia megadja-e az aktuális projektet
InternalsVisibleTo - A szerelvényből kapott
InternalsVisibleToszerelvények neve és összes nyilvános kulcsa