MSBuild-referencia .NET SDK-projektekhez

Ez a lap a .NET projektek konfigurálásához használható MSBuild tulajdonságokra és elemekre mutató hivatkozás.

Note

Ez a lap egy folyamatban lévő munka, és nem sorolja fel az .NET SDK összes hasznos MSBuild tulajdonságát. A gyakori MSBuild tulajdonságok listáját lásd: Common MSBuild properties.

Szerelvény-érvényesítési tulajdonságok

Ezeket a tulajdonságokat és elemeket a rendszer átadja a ValidateAssemblies feladatnak. A szerelvény-ellenőrzéssel kapcsolatos további információkért lásd: Szerelvény-ellenőrzés.

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

Note

Ezek a tulajdonságok még nem részei a .NET SDK-nak. A használatukhoz hozzá kell adnia egy PackageReferenceMicrosoft. DotNet.ApiCompat.Task.

Emellett a csomagérvényesítési tulajdonságokban dokumentált alábbi tulajdonságok az szerelvény-ellenőrzésre is érvényesek:

ApiCompatStrictMode

Ha be van trueállítva, a tulajdonság azt határozza meg, hogy az ApiCompatStrictMode API-kompatibilitási ellenőrzéseket szigorú módban kell elvégezni.

<PropertyGroup>
  <ApiCompatStrictMode>true</ApiCompatStrictMode>
</PropertyGroup>

ApiCompatValidateAssemblies

A ApiCompatValidateAssemblies tulajdonság számos ellenőrzést tesz lehetővé a megadott szerelvényeken. További információ: Szerelvény érvényesítése.

<PropertyGroup>
  <ApiCompatValidateAssemblies>true</ApiCompatValidateAssemblies>
</PropertyGroup>

Szerelvényattribútum tulajdonságai

GenerateAssemblyInfo

A GenerateAssemblyInfo tulajdonság szabályozza AssemblyInfo a projekt attribútumának létrehozását. Az alapértelmezett érték a true. A fájl létrehozásának letiltására használható false :

<PropertyGroup>
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>

A GeneratedAssemblyInfoFile beállítás szabályozza a létrehozott fájl nevét.

Ha az érték azGenerateAssemblyInfo, a true csomaghoz kapcsolódó projekttulajdonságok szerelvényattribútumokká alakulnak.

A projektfájl szerelvényattribútumainak létrehozásával kapcsolatos további információkért lásd : Szerelvényattribútumok beállítása egy projektfájlban.

GeneratedAssemblyInfoFile

A GeneratedAssemblyInfoFile tulajdonság határozza meg a létrehozott szerelvény-információs fájl relatív vagy abszolút elérési útját. Alapértelmezés szerint a(z) [project-name] nevű fájl. AssemblyInfo. [cs|vb] az $(IntermediateOutputPath) (általában az obj) könyvtárban.

<PropertyGroup>
  <GeneratedAssemblyInfoFile>assemblyinfo.cs</GeneratedAssemblyInfoFile>
</PropertyGroup>

IncludeSourceRevisionInformationalVersion

A IncludeSourceRevisionInInformationalVersion tulajdonság azt szabályozza, hogy az SourceRevisionId érték hozzá legyen-e fűzve a InformationalVersion szerelvény attribútumához. Az alapértelmezett érték a true. Állítsa be úgy, hogy false letiltsa ezt a viselkedést:

<PropertyGroup>
  <IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
</PropertyGroup>

További információ: Forrás hivatkozás a .NET SDK-ban.

SourceRevisionId

A SourceRevisionId tulajdonság tartalmazza a build forrásvezérlőjének változatazonosítóját, például a Git véglegesítési kivonatát. A .NET 8-tól kezdve a .NET SDK automatikusan feltölti ezt a tulajdonságot a véglegesítési kivonattal, amikor Source Link jelen van. Ha be van állítva, az értéke hozzá lesz fűzve a InformationalVersion szerelvény attribútumához.

<PropertyGroup>
  <SourceRevisionId>abc1234</SourceRevisionId>
</PropertyGroup>

További információ: Forrás hivatkozás a .NET SDK-ban.

Keretrendszer tulajdonságai

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

TargetFramework

A TargetFramework tulajdonság az alkalmazás cél-keretrendszerverzióját határozza meg. Az érvényes cél-keretrendszer-monikerek listáját az SDK-stílusú projektek cél-keretrendszerei című témakörben találja.

<PropertyGroup>
  <TargetFramework>net8.0</TargetFramework>
</PropertyGroup>

Note

Az TargetFramework érték egy alias. A .NET SDK elemzi és beállítja a canonical moniker tulajdonságait: TargetFrameworkMoniker, TargetFrameworkIdentifier, TargetFrameworkVersion, és adott esetben TargetPlatformIdentifier, TargetPlatformVersion és TargetPlatformMoniker. Ha egyéni aliast használ, ezeket a tulajdonságokat közvetlenül a projektfájlban állíthatja be.

További információ: Target frameworks in SDK style projects.

TargetFrameworks

Használja a TargetFrameworks tulajdonságot, ha azt szeretné, hogy az alkalmazás több platformot célozz meg. Az érvényes cél-keretrendszer-monikerek listáját az SDK-stílusú projektek cél-keretrendszerei című témakörben találja.

Note

Ha TargetFrameworks (többes szám) van megadva, TargetFramework a rendszer figyelmen kívül hagyja a (többes szám) értéket.

<PropertyGroup>
  <TargetFrameworks>net8.0;net462</TargetFrameworks>
</PropertyGroup>

Note

A .NET SDK 10.0.300-tól kezdve több érték is feloldható ugyanahhoz a hatékony keretrendszerhez. Például akkor érvényes, <TargetFrameworks>linux;mac</TargetFrameworks> ha mindkét alias cél-keretrendszerként van feloldva net10.0 .

További információ: Target frameworks in SDK style projects.

NetStandardImplicitPackageVersion

Note

Ez a tulajdonság csak a következőt használó netstandard1.xprojektekre vonatkozik: . Ez nem vonatkozik a használt netstandard2.xprojektekre.

Akkor használja a NetStandardImplicitPackageVersion tulajdonságot, ha a metapackage verziónál alacsonyabb keretrendszerverziót szeretne megadni. A következő példában szereplő projektfájl a célokat célozza netstandard1.3 , de az 1.6.0-s verzióját NETStandard.Libraryhasználja.

<PropertyGroup>
  <TargetFramework>netstandard1.3</TargetFramework>
  <NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>
</PropertyGroup>

Csomag tulajdonságai

Leíró tulajdonságok

Megadhatja az olyan tulajdonságokat, mint PackageIda , PackageVersion, PackageIcon, Titleés Description leírhatja a projektből létrehozott csomagot. Ezekről és más tulajdonságokról további információt a csomagcélban talál.

<PropertyGroup>
  ...
  <PackageId>ClassLibDotNetStandard</PackageId>
  <Version>1.0.0</Version>
  <Authors>John Doe</Authors>
  <Company>Contoso</Company>
</PropertyGroup>

PackRelease

A PackRelease tulajdonság hasonló a PublishRelease tulajdonsághoz, azzal a kivételt leszámítva, hogy megváltoztatja a függvény alapértelmezett viselkedését dotnet pack. Ez a tulajdonság a 7. .NET lett bevezetve.

<PropertyGroup>
  <PackRelease>true</PackRelease>
</PropertyGroup>

Note

A .NET 8 SDK-tól kezdve a PackRelease alapértelmezés szerint true. További információ: "dotnet pack" használata Release configuration.

Csomagérvényesítési tulajdonságok

Ezeket a tulajdonságokat és elemeket a rendszer átadja a ValidatePackage feladatnak. A csomagérvényesítéssel kapcsolatos további információkért tekintse meg a csomagérvényesítés áttekintését.

A feladat tulajdonságaiért tekintse meg a ValidateAssemblies szerelvény érvényesítési tulajdonságait.

A következő MSBuild tulajdonságokat és elemeket ebben a szakaszban dokumentáljuk:

ApiCompatEnableRuleAttributesMustMatch

Ha be van trueállítva, a ApiCompatEnableRuleAttributesMustMatch tulajdonság engedélyezi az érvényességi szabályt, amely ellenőrzi, hogy az attribútumok egyeznek-e. Az alapértelmezett érték a false.

<PropertyGroup>
  <ApiCompatEnableRuleAttributesMustMatch>true</ApiCompatEnableRuleAttributesMustMatch>
</PropertyGroup>

ApiCompatEnableRuleCannotChangeParameterName

Ha be van trueállítva, a ApiCompatEnableRuleCannotChangeParameterName tulajdonság engedélyezi az érvényesítési szabályt, amely ellenőrzi, hogy a paraméternevek megváltoztak-e a nyilvános metódusokban. Az alapértelmezett érték a false.

<PropertyGroup>
  <ApiCompatEnableRuleCannotChangeParameterName>true</ApiCompatEnableRuleCannotChangeParameterName>
</PropertyGroup>

ApiCompatExcludeAttributesFile

Az ApiCompatExcludeAttributesFile elem egy olyan fájl elérési útját adja meg, amely docId formátumban kizárandó attribútumokat tartalmaz.

<ItemGroup>
  <ApiCompatExcludeAttributesFile Include="ApiCompatExcludedAttributes.txt" />
  <ApiCompatExcludeAttributesFile Include="ApiCompatBaselineExcludedAttributes.txt" />
</ItemGroup>

ApiCompatGenerateSuppressionFile

A ApiCompatGenerateSuppressionFile tulajdonság megadja, hogy létre kell-e hozni egy kompatibilitási tiltófájlt.

<PropertyGroup>
  <ApiCompatGenerateSuppressionFile>true</ApiCompatGenerateSuppressionFile>
</PropertyGroup>

ApiCompatPermitUnnecessarySuppressions

A ApiCompatPermitUnnecessarySuppressions tulajdonság azt határozza meg, hogy engedélyezi-e a szükségtelen letiltást a letiltási fájlban.

Az alapértelmezett érték a false.

<PropertyGroup>
  <ApiCompatPermitUnnecessarySuppressions>true</ApiCompatPermitUnnecessarySuppressions>
</PropertyGroup>

ApiCompatPreserveUnnecessarySuppressions

A ApiCompatPreserveUnnecessarySuppressions tulajdonság azt határozza meg, hogy a letiltó fájl újragenerálásakor meg kell-e őrizni a szükségtelen elnyomásokat. Egy meglévő letiltó fájl újragenerálásakor a rendszer felolvassa annak tartalmát, deszerializálja az elnyomások egy csoportjába, majd egy listában tárolja. Előfordulhat, hogy az inkompatibilitás kijavítása esetén a továbbiakban nem lesz szükség a letiltásokra. Ha a letiltások vissza lettek szerializálva a lemezre, a tulajdonság beállításával megtarthatja true meglévő (deszerializált) kifejezést.

Az alapértelmezett érték a false.

<PropertyGroup>
  <ApiCompatPreserveUnnecessarySuppressions>true</ApiCompatPreserveUnnecessarySuppressions>
</PropertyGroup>

ApiCompatRespectInternals

A ApiCompatRespectInternals tulajdonság azt határozza meg, hogy az API-k mellett az API-k kompatibilitását internal is ellenőrizni kell-epublic.

<PropertyGroup>
  <ApiCompatRespectInternals>true</ApiCompatRespectInternals>
</PropertyGroup>

ApiCompatSuppressionFile

Az ApiCompatSuppressionFile elem egy vagy több elnyomó fájl elérési útját adja meg, amelyből olvasni szeretne. Ha nincs meghatározva, a program beolvassa a project-directory</CompatibilitySuppressions.xml>(ha létezik).

<ItemGroup>
  <ApiCompatSuppressionFile Include="CompatibilitySuppressions.xml;CompatibilitySuppressions.WasmThreads.xml" />
</ItemGroup>

ApiCompatSuppressionOutputFile

A ApiCompatSuppressionOutputFile tulajdonság egy letiltó fájl elérési útját adja meg, amelybe írni szeretne, amikor <ApiCompatGenerateSuppressionFile> van true. Ha nincs meghatározva, a rendszer az első ApiCompatSuppressionFile elemet használja.

EnablePackageValidation

A EnablePackageValidation tulajdonság számos ellenőrzést tesz lehetővé a csomagon a Pack feladat után. További információ: csomagérvényesítés.

<PropertyGroup>
  <EnablePackageValidation>true</EnablePackageValidation>
</PropertyGroup>

EnableStrictModeForBaselineValidation

Ha be van trueállítva, a tulajdonság szigorú módotEnableStrictModeForBaselineValidationa csomag alapkonfiguráció-ellenőrzéséhez. Az alapértelmezett érték a false.

EnableStrictModeForCompatibleFrameworksInPackage

Ha be van trueállítva, a EnableStrictModeForCompatibleFrameworksInPackage tulajdonság szigorú módot tesz lehetővé olyan szerelvények számára, amelyek kompatibilisek a célkeretük alapján. Az alapértelmezett érték a false.

EnableStrictModeForCompatibleTfms

Ha be van trueállítva, a EnableStrictModeForCompatibleTfms tulajdonság szigorú módot tesz lehetővé a szerződés- és végrehajtási szerelvények számára minden kompatibilis célkerethez. Az alapértelmezett érték a true.

NoWarn

A NoWarn tulajdonság megadja a letiltandó diagnosztikai azonosítókat.

<PropertyGroup>
  <NoWarn>$(NoWarn);PKV0001</NoWarn>
</PropertyGroup>

PackageValidationBaselineFrameworkToIgnore

Az PackageValidationBaselineFrameworkToIgnore elem egy célkeretet határoz meg, amely figyelmen kívül hagyandó az alapcsomagból. A keretrendszer sztringjének pontosan meg kell egyeznie az alapcsomag mappanevével.

<ItemGroup>
  <PackageValidationBaselineFrameworkToIgnore Include="netcoreapp2.1" />
</ItemGroup>

PackageValidationBaselineName

A PackageValidationBaselineName tulajdonság az alapcsomag nevét adja meg az aktuális csomag ellenőrzéséhez. Ha nincs meghatározva, a rendszer az PackageId értéket használja.

PackageValidationBaselineVersion

A PackageValidationBaselineVersion tulajdonság az alapcsomag verzióját adja meg az aktuális csomag ellenőrzéséhez.

PackageValidationReferencePath

Az PackageValidationReferencePath elem megadja azt a könyvtár elérési útját, ahol a referenciaszerelvény megtalálható TFM-enként.

<ItemGroup>
  <PackageValidationReferencePath Include="path/to/reference-assembly" TargetFramework="net9.0" />
</ItemGroup>

RoslynAssembliesPath

A RoslynAssembliesPath tulajdonság határozza meg a Microsoft tartalmazó könyvtár elérési útját. A használni kívánt CodeAnalysis szerelvények. Ezt a tulajdonságot csak akkor kell beállítania, ha az SDK-ban találhatónál újabb fordítóval szeretne tesztelni.

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

AppendTargetFrameworkToOutputPath

A AppendTargetFrameworkToOutputPath tulajdonság azt szabályozza, hogy a cél-keretrendszer moniker (TFM) hozzá legyen-e fűzve a kimeneti útvonalhoz (amelyet az OutputPath határoz meg). A .NET SDK automatikusan hozzáfűzi a cél keretrendszert, és ha van ilyen, a futtatókörnyezet azonosítóját a kimeneti útvonalhoz. Beállítás AppendTargetFrameworkToOutputPath , amely megakadályozza, hogy false a TFM hozzá legyen fűzve a kimeneti útvonalhoz. A kimeneti útvonal TFM-jének nélkül azonban több buildösszetevő is felülírhatja egymást.

Egy .NET 5-ös alkalmazás esetén például a kimeneti útvonal bin\Debug\net5.0-ről bin\Debug értékre változik a következő beállítással:

<PropertyGroup>
  <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>

AppendRuntimeIdentifierToOutputPath

A AppendRuntimeIdentifierToOutputPath tulajdonság azt szabályozza, hogy a futtatókörnyezet azonosítója (RID) hozzá legyen-e fűzve a kimeneti útvonalhoz. A .NET SDK automatikusan hozzáfűzi a cél keretrendszert, és ha van ilyen, a futtatókörnyezet azonosítóját (RID) a kimeneti útvonalhoz. Beállítás AppendRuntimeIdentifierToOutputPath , amely megakadályozza, hogy false a RID hozzá legyen fűzve a kimeneti útvonalhoz. ( A RID azonban továbbra is hozzá van fűzve a közzétételi útvonalhoz. További információ: dotnet/sdk#12114.)

Például egy .NET 9-alkalmazáshoz és a win-x64 RID-éhez az alábbi beállítás bin\Debug\net9.0\win-x64 kimeneti útvonalát bin\Debug\net9.0 értékre módosítja:

<PropertyGroup>
  <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

CopyLocalLockFileAssemblies

Ez CopyLocalLockFileAssemblies a tulajdonság olyan beépülő modulprojektek esetén hasznos, amelyek más kódtáraktól függenek. Ha ezt a tulajdonságot trueállítja be, a rendszer minden tranzitív NuGet-csomagfüggőséget átmásol a kimeneti könyvtárba. Ez azt jelenti, hogy bármelyik gépen futtathatja a beépülő modul kimenetét dotnet build .

<PropertyGroup>
  <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>

Az alapértelmezett érték CopyLocalLockFileAssemblies a kimeneti típustól függően változhat. Az osztálytárak esetében például az alapértelmezett érték, míg a konzolalkalmazások esetében az alapértelmezett falseértéktrue. Ezt a tulajdonságot explicit módon is megadhatja, hogy szükség esetén felülbírálja az alapértelmezett értéket.

Tip

Másik lehetőségként az osztálytárat is közzéteheti dotnet publish . További információ: dotnet publish.

ErrorOnDuplicatePublishOutputFiles

A ErrorOnDuplicatePublishOutputFiles tulajdonság azzal kapcsolatos, hogy az SDK hibát okoz-e NETSDK1148, amikor az MSBuild duplikált fájlokat észlel a közzétételi kimenetben, de nem tudja meghatározni, hogy mely fájlokat kell eltávolítania. Állítsa a tulajdonságot arra az ErrorOnDuplicatePublishOutputFiles esetre false , ha nem szeretné, hogy a hiba létrejönjön.

<PropertyGroup>
  <ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
</PropertyGroup>

Ez a tulajdonság a 6. .NET lett bevezetve.

GenerateRuntimeConfigDevFile

A .NET 6 SDK-tól kezdve a [Appname].runtimesettings.dev.json fájl alapértelmezés szerint nem jön létre alapértelmezés szerint fordításkor. Ha továbbra is létre szeretné hozni ezt a fájlt, állítsa a tulajdonságot a GenerateRuntimeConfigDevFile következőre true: .

<PropertyGroup>
  <GenerateRuntimeConfigDevFile>true</GenerateRuntimeConfigDevFile>
</PropertyGroup>

GenerateRuntimeConfigurationFiles

A GenerateRuntimeConfigurationFiles tulajdonság azt szabályozza, hogy a futtatókörnyezet konfigurációs beállításai a runtimeconfig.template.json fájlból az [alkalmazásnév].runtimeconfig.json fájlba legyenek-e másolva. A runtimeconfig.json fájlt igénylő következő.

<PropertyGroup>
  <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>

GenerateSatelliteAssembliesForCore

A GenerateSatelliteAssembliesForCore tulajdonság azt szabályozza, hogy a műholdszerelvények csc.exe vagy Al.exe (Assembly Linker) használatával jönnek-e létre .NET Keretrendszer-projektekben. (.NET Core és .NET 5+-os projektek mindig a csc.exe használatával hoznak létre műholdas szerelvényeket.) A .NET-keretrendszer-projektek esetében a műholdas szerelvényeket alapértelmezés szerint a al.exe hozza létre. A tulajdonság beállításával a GenerateSatelliteAssembliesForCore műholdas szerelvényeket csc.exe hozza létretrue. A csc.exe használata a következő helyzetekben lehet előnyös:

<PropertyGroup>
  <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
</PropertyGroup>

IsPublishable

A IsPublishable tulajdonság lehetővé teszi a Publish cél futtatását. Ez a tulajdonság csak azokat a folyamatokat érinti, amelyek .*proj fájlokat és a célfájlt, például a Publish parancsot használják. Nincs hatással a Visual Studio való közzétételre, amely a PublishOnly célt használja. Az alapértelmezett érték a true.

Ez a tulajdonság akkor hasznos, ha egy megoldásfájlon fut dotnet publish , mivel lehetővé teszi a közzéteendő projektek automatikus kiválasztását.

<PropertyGroup>
  <IsPublishable>false</IsPublishable>
</PropertyGroup>

PreserveCompilationContext

A PreserveCompilationContext tulajdonság lehetővé teszi, hogy egy beépített vagy közzétett alkalmazás futásidőben több kódot állítson össze ugyanazokkal a beállításokkal, amelyeket a buildeléskor használtak. Az összeállításkor hivatkozott szerelvényeket a rendszer a kimeneti könyvtár ref alkönyvtárába másolja. A referencia-szerelvények nevei az alkalmazás .deps.json fájljában vannak tárolva, a fordítónak átadott beállításokkal együtt. Ezeket az információkat a tulajdonságok és DependencyContext.CompileLibraries a DependencyContext.CompilationOptions tulajdonságok használatával is lekérheti.

Ezt a funkciót többnyire belsőleg használják ASP.NET Core MVC- és Razor-lapok a Razor-fájlok futásidejű fordításának támogatásához.

<PropertyGroup>
  <PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>

PreserveCompilationReferences

A PreserveCompilationReferences tulajdonság hasonló a PreserveCompilationContext tulajdonsághoz, azzal a kivételével, hogy csak a hivatkozott szerelvényeket másolja a közzétételi könyvtárba, és nem a .deps.json fájlt.

<PropertyGroup>
  <PreserveCompilationReferences>true</PreserveCompilationReferences>
</PropertyGroup>

További információ: Razor SDK tulajdonságai.

ProduceReferenceAssemblyInOutDir

.NET 5-ös és korábbi verziókban a referencia-szerelvények mindig a OutDir könyvtárba vannak írva. A .NET 6-os és újabb verzióiban a ProduceReferenceAssemblyInOutDir tulajdonság segítségével szabályozhatja, hogy a referenciaszerelvények a OutDir könyvtárba vannak-e írva. Az alapértelmezett érték az false, és a referenciaszerelvények csak a IntermediateOutputPath könyvtárba vannak írva. Állítsa be úgy az értéket, hogy true referenciaszerelvényeket írjon a OutDir könyvtárba.

<PropertyGroup>
  <ProduceReferenceAssemblyInOutDir>true</ProduceReferenceAssemblyInOutDir>
</PropertyGroup>

További információ: Referenciaszerelvények írása köztes kimenetre.

PublishDocumentationFile

Ha ez a tulajdonság, truea projekt XML-dokumentációs fájlja , ha létrejön, a projekt közzétételi kimenetében szerepel. Ez a tulajdonság alapértelmezés szerint a .true

Tip

Állítsa be a GenerateDocumentationFile-ttrue XML-dokumentációs fájl létrehozására fordításkor.

PublishDocumentationFiles

Ez a tulajdonság számos más tulajdonság engedélyezési jelzője, amely azt szabályozza, hogy a rendszer alapértelmezés szerint átmásolja-e a különböző XML-dokumentációs fájlokat a közzétételi könyvtárba, nevezetesen a PublishDocumentationFile és a PublishReferencesDocumentationFiles fájlokat. Ha ezek a tulajdonságok nincsenek megadva, és ez a tulajdonság be van állítva, akkor ezek a tulajdonságok alapértelmezés szerint a következők lesznek true: . Ez a tulajdonság alapértelmezés szerint a .true

PublishReferencesDocumentationFiles

Ha ez a tulajdonság, truea program a projekt hivatkozásainak XML-dokumentációs fájljait a közzétételi könyvtárba másolja ahelyett, hogy csak futtatókörnyezeti objektumokat, például DLL-fájlokat használna. Ez a tulajdonság alapértelmezés szerint a .true

PublishReferencesSymbols

Ha ez a tulajdonság, a trueprogram a projekt hivatkozásainak szimbólumfájljait (más néven PDF-fájlokat) a közzétételi könyvtárba másolja ahelyett, hogy csak futtatókörnyezeti objektumokat, például DLL-fájlokat használna. Ez a tulajdonság alapértelmezés szerint a .true

PublishRelease

A PublishRelease tulajdonság alapértelmezés szerint a dotnet publishRelease konfigurációt használja a Debug konfiguráció helyett. Ez a tulajdonság a 7. .NET lett bevezetve.

<PropertyGroup>
  <PublishRelease>true</PublishRelease>
</PropertyGroup>

Note

  • A .NET 8 SDK-tól kezdve a PublishRelease alapértelmezés szerint true a 8-.NET vagy újabb verziójú projektek esetében. További információ: "dotnet publish" használata Release configuration.
  • Ez a tulajdonság nem befolyásolja a dotnet build /t:Publish viselkedését, és csak akkor módosítja a konfigurációt, amikor a .NET parancssori felületén keresztül teszi közzé.

PublishSelfContained

A PublishSelfContained tulajdonság azt jelzidotnet publish, hogy az alkalmazás önálló alkalmazásként való közzétételére szolgál. Ez a tulajdonság akkor hasznos, ha nem tudja használni a --self-containeddotnet publish parancs argumentumát – például a megoldás szintjén történő közzétételkor. Ebben az esetben hozzáadhatja az PublishSelfContained MSBuild tulajdonságot egy projekthez vagy a Directory.Build.Props fájlhoz .

Ez a tulajdonság a 7. .NET lett bevezetve. Hasonló a SelfContained tulajdonsághoz, azzal a kivételsel, hogy az igére publish jellemző. Javasoljuk, hogy ahelyett, hogy a PublishSelfContainedSelfContained.

<PropertyGroup>
  <PublishSelfContained>true</PublishSelfContained>
</PropertyGroup>

RollForward

A RollForward tulajdonság szabályozza, hogy az alkalmazás hogyan választja ki a futtatókörnyezetet, ha több futtatókörnyezeti verzió is elérhető. Ez az érték a .runtimeconfig.json adja meg beállításként rollForward .

<PropertyGroup>
  <RollForward>LatestMinor</RollForward>
</PropertyGroup>

Állítsa az RollForward alábbi értékek egyikére:

Value Description
Minor Alapértelmezett, ha nincs megadva.
Ha a kért alverzió hiányzik, lépjen tovább a következő elérhető magasabb alverzióra (és az alverzión belül a legmagasabb elérhető javításverzióra). Ha a kért alverzió jelen van, akkor a rendszer a LatestPatch szabályzatot használja.
Major Ha a kért főverzió hiányzik, lépjen tovább a következő elérhető magasabb főverzióra (a legalacsonyabb elérhető alverzióra és az alverzión belül a legmagasabb elérhető javításverzióra). Ha a kért főverzió jelen van, akkor a rendszer a Minor szabályzatot használja.
LatestPatch Ugrás a kért fő- és alverziókhoz elérhető legmagasabb javításverzióra. Ez az érték letiltja az alverziók továbbgördítését.
LatestMinor Ugrás a kért főverzióhoz elérhető legmagasabb alverzióra (és az alverzión belül a legmagasabb elérhető javításverzióra), még akkor is, ha a kért alverzió jelen van.
LatestMajor Ugrás a legmagasabb elérhető főverzióra (és a legnagyobb elérhető alverzióra és javításra az adott főverzióban), még akkor is, ha a kért főverzió jelen van.
Disable Ne lépjen előre, csak a megadott verzióhoz kötést. Ez a szabályzat nem ajánlott általános használatra, mivel letiltja a legújabb javításokra való visszaállítás lehetőségét. Ez az érték csak teszteléshez ajánlott.

További információ: A roll-forward viselkedés szabályozása.

RuntimeFrameworkVersion

A RuntimeFrameworkVersion tulajdonság megadja a közzétételkor használni kívánt futtatókörnyezet verzióját. Adja meg a futtatókörnyezet verzióját:

<PropertyGroup>
  <RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
</PropertyGroup>

Keretrendszerfüggő alkalmazás közzétételekor ez az érték határozza meg a minimálisan szükséges verziót. Önálló alkalmazás közzétételekor ez az érték határozza meg a szükséges verziót .

RuntimeIdentifier

A RuntimeIdentifier tulajdonság lehetővé teszi egyetlen futtatókörnyezet-azonosító (RID) megadását a projekthez. A RID lehetővé teszi egy önálló üzembe helyezés közzétételét.

<PropertyGroup>
  <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
</PropertyGroup>

RuntimeIdentifiers

A RuntimeIdentifiers tulajdonság lehetővé teszi, hogy pontosvesszővel tagolt listát adjon meg a projekt futtatókörnyezet-azonosítóiról (RID-k ). Ezt a tulajdonságot akkor használja, ha több futtatókörnyezetben kell közzétennie. RuntimeIdentifiers a rendszer a visszaállításkor használja annak biztosítására, hogy a megfelelő eszközök szerepeljenek a gráfban.

Tip

RuntimeIdentifier A (szingular) gyorsabb buildeket biztosíthat, ha csak egyetlen futtatókörnyezetre van szükség.

<PropertyGroup>
  <RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers>
</PropertyGroup>

SatelliteResourceLanguages

A SatelliteResourceLanguages tulajdonság segítségével megadhatja, hogy mely nyelvekre szeretné megőrizni a műholderőforrás-szerelvényeket a buildelés és a közzététel során. Számos NuGet-csomag tartalmaz honosított erőforrás-műholdas szerelvényeket a fő csomagban. A honosított erőforrásokat nem igénylő NuGet-csomagokra hivatkozó projektek esetében a honosított szerelvények szükségtelenül megnövelhetik a buildelési és közzétételi kimeneti méretet. Ha hozzáadja a SatelliteResourceLanguages tulajdonságot a projektfájlhoz, csak a megadott nyelvek honosított szerelvényei lesznek belefoglalva a buildelési és közzétételi kimenetbe. A következő projektfájlban például csak az angol (USA) és a német (Németország) erőforrás-műholdszerelvények maradnak meg.

<PropertyGroup>
  <SatelliteResourceLanguages>en-US;de-DE</SatelliteResourceLanguages>
</PropertyGroup>

Note

  • Ezt a tulajdonságot meg kell adnia a projektben, amely a NuGet-csomagra hivatkozik honosított erőforrás-műholdas szerelvényekkel.

  • Ha több nyelvet szeretne argumentumként dotnet publishmegadni, három pár idézőjelet kell hozzáadnia a nyelvi azonosítókhoz. Például:

    dotnet msbuild multi.msbuildproj -p:SatelliteResourceLanguages="""de;en"""

SelfContained

A SelfContained tulajdonság tájékoztatjadotnet build, és dotnet publish önálló alkalmazásként készít vagy tesz közzé alkalmazásokat. Ez a tulajdonság akkor hasznos, ha nem tudja használni az --self-contained argumentumot a dotnet paranccsal – például a megoldás szintjén történő közzétételkor. Ebben az esetben hozzáadhatja az SelfContained MSBuild tulajdonságot egy projekthez vagy a Directory.Build.Props fájlhoz .

Ez a tulajdonság hasonló a PublishSelfContained tulajdonsághoz . A lehetőség helyett PublishSelfContained ajánlott használniSelfContained.

<PropertyGroup>
  <SelfContained>true</SelfContained>
</PropertyGroup>

UseAppHost

A UseAppHost tulajdonság azt szabályozza, hogy létrejön-e natív végrehajtható fájl az üzembe helyezéshez. Az önálló üzembe helyezésekhez natív végrehajtható példányra van szükség. Alapértelmezés szerint egy keretrendszerfüggő végrehajtható fájl jön létre. Állítsa be a UseAppHost tulajdonságot úgy, hogy false letiltsa a végrehajtható generáció létrehozását.

<PropertyGroup>
  <UseAppHost>false</UseAppHost>
</PropertyGroup>

További információ az üzembe helyezésről: .NET alkalmazástelepítés.

UseNativeLibPrefix

A UseNativeLibPrefix tulajdonság azt szabályozza, hogy a NativeAOT alkalmazza-e az lib előtagot a Unix-platformokon nem végrehajtható natív kódtárkimenetekre. Alapértelmezés szerint az lib előtagot alkalmazza a rendszer, amely igazodik a megosztott és statikus kódtárak Unix-elnevezési konvencióihoz (például libmylib.so: , libmylib.a).

Állítsa úgy UseNativeLibPrefix , hogy false kikapcsolja az alapértelmezett viselkedést:

<PropertyGroup>
  <UseNativeLibPrefix>false</UseNativeLibPrefix>
</PropertyGroup>

Ez a tulajdonság a 11. .NET lett bevezetve. További információ: A NativeAOT a Unix natív kódtár-kimeneteihez használja a lib előtagot.

Számos MSBuild tulajdonság érhető el a vágás finomhangolásához, amely egy olyan funkció, amely levágja a nem használt kódot az önkiszolgáló üzemelő példányokból. Ezeket a beállításokat részletesen tárgyaljuk a vágási beállításoknál. Az alábbi táblázat gyors referenciát nyújt.

Property Values Description
PublishTrimmed true vagy false Azt szabályozza, hogy a vágás engedélyezve van-e a közzététel során.
TrimMode full vagy partial Az alapértelmezett érték full. Szabályozza a vágás részletességét.
SuppressTrimAnalysisWarnings true vagy false Azt szabályozza, hogy a vágáselemzési figyelmeztetések létre legyenek-e hozva.
EnableTrimAnalyzer true vagy false Azt szabályozza, hogy a rendszer a vágáselemzési figyelmeztetések egy részhalmazát hozza-e létre. Az elemzést akkor is engedélyezheti, ha PublishTrimmed be van állítva false.
ILLinkTreatWarningsAsErrors true vagy false Azt szabályozza, hogy a vágási figyelmeztetések hibaként legyenek-e kezelve. Előfordulhat például, hogy ezt a tulajdonságot false arra szeretné beállítani, hogy mikor TreatWarningsAsErrors legyen truebeállítva.
TrimmerSingleWarn true vagy false Azt szabályozza, hogy a szerelvényenként egyetlen figyelmeztetés jelenik-e meg, vagy az összes figyelmeztetés.
TrimmerRemoveSymbols true vagy false Azt szabályozza, hogy az összes szimbólum el legyen-e távolítva egy levágott alkalmazásból.

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

A C#-fordító beállításai, például LangVersion és Nullable, msBuild tulajdonságként is megadható a projektfájlban. További információ: C#-fordító beállításai.

ContinuousIntegrationBuild

A ContinuousIntegrationBuild tulajdonság azt jelzi, hogy egy build egy folyamatos integrációs (CI) kiszolgálón fut-e. Ha be van trueállítva, ez a tulajdonság csak a hivatalos buildekre vonatkozó beállításokat engedélyezi, szemben a fejlesztői gépek helyi buildjeivel. A tárolt fájl elérési útjai például normalizálva vannak a hivatalos buildekhez. Helyi fejlesztőgépen azonban a hibakereső nem talál helyi forrásfájlokat, ha a fájlelérési utak normalizálva vannak.

A CI-rendszer változójával feltételesen beállíthatja a tulajdonságot ContinuousIntegrationBuild . Az Azure Pipelines változójának neve például TF_BUILD:

<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
  <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>

A GitHub Actions változó neve GITHUB_ACTIONS:

<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
  <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>

CopyDebugSymbolFilesFromPackages

Ha ez a tulajdonság be van állítva true, a rendszer a projekt elemeiből származó PackageReference összes szimbólumfájlt (más néven PDB-fájlt) átmásolja a build kimenetére. Ezek a fájlok informatívabb veremkövetéseket biztosítanak a kivételekhez, és könnyebben érthetővé teszik a futó alkalmazás memóriaképeit és nyomkövetéseit. A fájlok beleszámítása azonban megnöveli az üzembehelyezési csomagok méretét.

Ez a tulajdonság .NET SDK 7.0.100-ban lett bevezetve, bár alapértelmezés szerint nincs megadva.

CopyDocumentationFilesFromPackages

Ha ez a tulajdonság be van állítva true, a rendszer a projekt elemeiből létrehozott PackageReference ÖSSZES XML-dokumentációfájlt átmásolja a buildkimenetbe. Vegye figyelembe, hogy a funkció engedélyezése megnöveli az üzembehelyezési csomagok méretét.

Ez a tulajdonság .NET SDK 7.0.100-ban lett bevezetve, bár alapértelmezés szerint nincs megadva.

DisableImplicitFrameworkDefines

A DisableImplicitFrameworkDefines tulajdonság azt szabályozza, hogy az SDK előfeldolgozási szimbólumokat hoz-e létre a .NET projekt cél keretrendszeréhez és platformához. Ha ez a tulajdonság be van állítva false vagy nincs megadva (ez az alapértelmezett érték), a rendszer előprocesszorszimbólumokat hoz létre a következőhöz:

  • Verzió nélküli keretrendszer (NETFRAMEWORK, NETSTANDARD, NET)
  • Keretrendszer verzióval (NET48, NETSTANDARD2_0, NET6_0)
  • Keretrendszer minimálisan kötött verzióval (NET48_OR_GREATER, NETSTANDARD2_0_OR_GREATER, NET6_0_OR_GREATER)

A cél-keretrendszer-monikerekről és ezekről az implicit előprocesszorszimbólumokról további információt a Target-keretrendszerek című témakörben talál.

Emellett ha a projektben egy operációsrendszer-specifikus célkeretet ad meg (például net6.0-android), a következő előprocesszorszimbólumok jönnek létre:

  • Platform verzió nélkül (ANDROID, IOS, WINDOWS)
  • Platform verzióval (IOS15_1)
  • Platform minimálisan kötött verzióval (IOS15_1_OR_GREATER)

Az operációs rendszerspecifikus célkeret-monikerekről az operációs rendszerspecifikus TFM-ek című témakörben talál további információt.

Végül, ha a cél-keretrendszer támogatja a régebbi cél keretrendszereket, a rendszer előfeldolgozási szimbólumokat ad ki ezekhez a régebbi keretrendszerekhez. Például azt jelenti, net6.0 hogy támogatja, és így tovább egészen visszanet5.0..netcoreapp1.0 Ezért minden ilyen cél-keretrendszer esetében meg lesz határozva a minimálisan kötött verziójú keretrendszer.

DocumentationFile

A DocumentationFile tulajdonság lehetővé teszi a tár dokumentációját tartalmazó XML-fájl fájlnevének megadását. Ahhoz, hogy az IntelliSense megfelelően működjön a dokumentációval, a fájlnévnek meg kell egyeznie a szerelvény nevével, és ugyanabban a könyvtárban kell lennie, mint a szerelvény. Ha nem adja meg ezt a tulajdonságot, de a GenerateDocumentationFile true, a dokumentációs fájl neve alapértelmezés szerint a szerelvény neve lesz, de egy .xml fájlkiterjesztéssel. Emiatt gyakran egyszerűbb kihagyni ezt a tulajdonságot, és inkább a GenerateDocumentationFile tulajdonságot használni.

Ha ezt a tulajdonságot adja meg, de a GenerateDocumentationFile false, a fordító nem hoz létre dokumentációfájlt. Ha megadja ezt a tulajdonságot, és kihagyja a GenerateDocumentationFile tulajdonságot, a fordító létrehoz egy dokumentációs fájlt.

<PropertyGroup>
  <DocumentationFile>path/to/file.xml</DocumentationFile>
</PropertyGroup>

EmbeddedResourceUseDependentUponConvention

A EmbeddedResourceUseDependentUponConvention tulajdonság azt határozza meg, hogy az erőforrás-jegyzékfájlnevek az erőforrásfájlokkal együtt található forrásfájlok típusadataiból jönnek-e létre. Ha például a Form1.resx ugyanabban a mappában van, mint Form1.cs, és EmbeddedResourceUseDependentUponConvention a beállítás trueértéke, a létrehozott .resources fájl a Form1.cs definiált első típusból veszi fel a nevét. Ha MyNamespace.Form1 a Form1.cs első típusa, akkor a létrehozott fájlnév MyNamespace.Form1.resources.

Note

Ha LogicalNameegy elemhez ManifestResourceName meg van adva a , DependentUponvagy EmbeddedResource metaadatok, akkor az erőforrásfájl létrehozott jegyzékfájljának neve ehelyett az adott metaadatokon alapul.

Alapértelmezés szerint a Core 3.0-s vagy újabb verziót .NET .NET projektben ez a tulajdonság true értékre van állítva. Ha a falseLogicalNameManifestResourceNameprojektfájlban az elemhez DependentUpon meg van adva a nem vagy EmbeddedResource a metaadat, az erőforrás-jegyzékfájl neve a projekt gyökérnévterétől és a .resx fájl relatív fájlelérési útvonalán alapul. További információ: Az erőforrás-jegyzékfájlok elnevezése.

<PropertyGroup>
  <EmbeddedResourceUseDependentUponConvention>true</EmbeddedResourceUseDependentUponConvention>
</PropertyGroup>

EnablePreviewFeatures

A EnablePreviewFeatures tulajdonság határozza meg, hogy a projekt függ-e az attribútummal RequiresPreviewFeaturesAttribute dekorált API-któl vagy szerelvényektől. Ez az attribútum azt jelzi, hogy egy API vagy szerelvény olyan funkciókat használ, amelyek előzetes verziójúnak tekinthetők a használt SDK-verzióhoz. Az előzetes verziójú funkciók nem támogatottak, és egy későbbi verzióban el is távolíthatók. Az előzetes verziójú funkciók használatának engedélyezéséhez állítsa a tulajdonságot a következőre True: .

<PropertyGroup>
  <EnablePreviewFeatures>True</EnablePreviewFeatures>
</PropertyGroup>

Ha egy projekt erre a tulajdonságra van állítva True, a rendszer a következő szerelvényszintű attribútumot adja hozzá a AssemblyInfo.cs fájlhoz:

[assembly: RequiresPreviewFeatures]

Az elemző figyelmezteti, ha ez az attribútum olyan projektek függőségeinél van jelen, ahol EnablePreviewFeatures nincs beállítva True.

Az előzetes verziójú szerelvényeket szállító kódtár-szerzőknek ezt a tulajdonságot a következőre kell beállítaniuk True: . Ha egy szerelvénynek előzetes verziójú és nem előzetes verziójú API-k keverékével kell szállítania, tekintse meg az alábbi GenerateRequiresPreviewFeaturesAttribute szakaszt.

EnableWindowsTargeting

Állítsa a EnableWindowsTargeting tulajdonságot true, hogy Windows alkalmazásokat (például Windows Forms vagy Windows megjelenítési alaprendszer alkalmazásokat) hozzon létre egy nem Windows platformon. Ha nem állítja be ezt a tulajdonságot true, a buildre figyelmeztető NETSDK1100 fog kapni. Ez a hiba azért fordul elő, mert a cél- és futtatókörnyezeti csomagok nem töltődnek le automatikusan a nem támogatott platformokra. A tulajdonság beállításával ezek a csomagok a keresztcélzáskor lesznek letöltve.

Note

Ez a tulajdonság jelenleg ajánlott a nem Windows platformokon történő fejlesztés engedélyezéséhez. Ha azonban az alkalmazás készen áll a kiadásra, az Windows kell alapulnia. Ha nem Windows platformra épít, előfordulhat, hogy a kimenet nem ugyanaz, mint a Windows. A végrehajtható fájl nem Windows alkalmazásként van megjelölve (ami azt jelenti, hogy mindig elindít egy konzolablakot), és nem lesz beágyazva ikon.

<PropertyGroup>
  <EnableWindowsTargeting>true</EnableWindowsTargeting>
</PropertyGroup>

GenerateDocumentationFile

A GenerateDocumentationFile tulajdonság azt szabályozza, hogy a fordító létrehoz-e XML-dokumentációs fájlt a tárhoz. Ha ezt a tulajdonságot true a DocumentationFile tulajdonságon keresztül állítja be, és nem ad meg fájlnevet, a létrehozott XML-fájl ugyanabba a kimeneti könyvtárba kerül, mint a szerelvény, és ugyanazzal a fájlnévvel rendelkezik (de .xml kiterjesztéssel).

<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

További információ a dokumentáció kódbejegyzésekből való létrehozásával kapcsolatban: lásd: XML dokumentációs megjegyzései (C#), A kód xml (Visual Basic) vagy A kód xml (F#) használatával történő dokumentálása.

GenerateRequiresPreviewFeaturesAttribute

A GenerateRequiresPreviewFeaturesAttribute tulajdonság szorosan kapcsolódik az EnablePreviewFeatures tulajdonsághoz . Ha a kódtár előzetes verziójú funkciókat használ, de nem szeretné, hogy a teljes szerelvényt megjelölje az RequiresPreviewFeaturesAttribute attribútummal, amihez a felhasználóknak engedélyezniük kell az előzetes verziójú funkciókat, állítsa ezt a tulajdonságot a következőre False: .

<PropertyGroup>
    <EnablePreviewFeatures>True</EnablePreviewFeatures>
    <GenerateRequiresPreviewFeaturesAttribute>False</GenerateRequiresPreviewFeaturesAttribute>
</PropertyGroup>

Important

Ha a tulajdonságot GenerateRequiresPreviewFeaturesAttributeúgy állítja be, hogy az False előzetes verziójú funkciókra RequiresPreviewFeaturesAttributetámaszkodó összes nyilvános API-t díszítenie kell.

OptimizeImplicitlyTriggeredBuild

A buildelési idő felgyorsítása érdekében az implicit módon aktivált buildeket Visual Studio kihagyni a kódelemzést, beleértve a null értékű elemzést is. Visual Studio például teszt futtatásakor implicit buildet aktivál. Az implicit buildek azonban csak akkor vannak optimalizálva, ha TreatWarningsAsErrors nem true. Ha beállította, TreatWarningsAsErrorstrue de továbbra is implicit módon aktivált buildeket szeretne optimalizálni, beállíthatja a következőt OptimizeImplicitlyTriggeredBuildTrue: . Az implicit módon aktivált buildek buildoptimalizálásának kikapcsolásához állítsa be OptimizeImplicitlyTriggeredBuild a következőt False: .

<PropertyGroup>
    <OptimizeImplicitlyTriggeredBuild>True</OptimizeImplicitlyTriggeredBuild>
</PropertyGroup>

DisableRuntimeMarshalling

A DisableRuntimeMarshalling tulajdonság lehetővé teszi annak megadását, hogy le szeretné tiltani a futásidejű rendezési támogatást a projekthez. Ha ez a tulajdonság be van állítvatrue, akkor a rendszer hozzáadja a DisableRuntimeMarshallingAttribute szerelvényhez, és minden P/Invokes vagy delegált alapú interop a letiltott futtatókörnyezet-rendezés szabályait követi.

<PropertyGroup>
    <DisableRuntimeMarshalling>True</DisableRuntimeMarshalling>
</PropertyGroup>

BuildWithNetFrameworkHostedCompiler

A beállítás BuildWithNetFrameworkHostedCompiler=true a megadásával RoslynCompilerType=FrameworkPackageegyenértékű. További információ: RoslynCompilerType. A beállítás BuildWithNetFrameworkHostedCompiler=false biztosítja, hogy RoslynCompilerType=FrameworkPackage az automatikus bejelentkezés ne történjen meg. Ha RoslynCompilerType explicit módon van megadva, BuildWithNetFrameworkHostedCompiler nincs hatása.

RoslynCompilerType

A RoslynCompilerType tulajdonság szabályozza a C# vagy Visual Basic fordító verzióját. A rendszer a következő értékeket ismeri fel:

  • Core: Használja a .NET SDK-hoz kapcsolódó fordítót. Ez az alapértelmezett .NET 10 óta, még akkor is, ha .NET Framework MSBuild-t használ.
  • Framework: Használja a .NET Framework MSBuild-hez készült fordítót.
  • FrameworkPackage: .NET Framework MSBuild használatakor töltse le és használja a .NET Framework fordítót, amely megfelel az .NET SDK-verziónak.

Alapértelmezett elembefoglalási tulajdonságok

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

További információkért lásd : Alapértelmezett tartalmazza és kizárja.

DefaultItemExcludes

DefaultItemExcludes A tulajdonság használatával definiálhat globmintákat olyan fájlokhoz és mappákhoz, amelyeket ki kell zárni a belefoglalásból, kizárásból és eltávolításból. Alapértelmezés szerint a ./bin és a ./obj mappák ki vannak zárva a glob-mintákból.

<PropertyGroup>
  <DefaultItemExcludes>$(DefaultItemExcludes);**/*.myextension</DefaultItemExcludes>
</PropertyGroup>

Note

A DefaultItemExcludes tulajdonság nem figyeli a fájlokat és mappákat dotnet watch. További információt a megadott mappák és fájlok dotnet watchfigyelmen kívül hagyása című témakörben talál.

DefaultItemExcludesInProjectFolder

A tulajdonság használatával definiálhatja a DefaultItemExcludesInProjectFolder projektmappában lévő fájlok és mappák glob mintáit, amelyeket ki kell zárni a belefoglalásból, kizárásból és eltávolításból. Alapértelmezés szerint a ponttal (.például .gittel és .vs) kezdődő mappák ki vannak zárva a glob-mintákból.

Ez a tulajdonság nagyon hasonló a DefaultItemExcludes tulajdonsághoz, kivéve, hogy csak a projektmappában lévő fájlokat és mappákat veszi figyelembe. Ha egy glob-minta véletlenül megfeleltetné a projektmappán kívüli elemeket egy relatív elérési úttal, használja a DefaultItemExcludesInProjectFolder tulajdonságot a DefaultItemExcludes tulajdonság helyett.

<PropertyGroup>
  <DefaultItemExcludesInProjectFolder>$(DefaultItemExcludesInProjectFolder);**/myprefix*/**</DefaultItemExcludesInProjectFolder>
</PropertyGroup>

EnableDefaultItems

A EnableDefaultItems tulajdonság azt szabályozza, hogy a fordítási elemek, a beágyazott erőforráselemek és None az elemek implicit módon szerepelnek-e a projektben. Az alapértelmezett érték a true. Állítsa be a EnableDefaultItems tulajdonságot úgy, hogy false az összes implicit fájlbefoglalást letiltsa.

<PropertyGroup>
  <EnableDefaultItems>false</EnableDefaultItems>
</PropertyGroup>

EnableDefaultCompileItems

A EnableDefaultCompileItems tulajdonság azt szabályozza, hogy a fordítási elemek implicit módon szerepelnek-e a projektben. Az alapértelmezett érték a true. Állítsa be a EnableDefaultCompileItems tulajdonságot úgy, hogy false letiltsa a *.cs és más nyelvi bővítményfájlok implicit felvételét.

<PropertyGroup>
  <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>

EnableDefaultEmbeddedResourceItems

A EnableDefaultEmbeddedResourceItems tulajdonság azt szabályozza, hogy a beágyazott erőforráselemek implicit módon szerepelnek-e a projektben. Az alapértelmezett érték a true. Állítsa be a EnableDefaultEmbeddedResourceItems tulajdonságot úgy, hogy false letiltsa a beágyazott erőforrásfájlok implicit felvételét.

<PropertyGroup>
  <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems>
</PropertyGroup>

EnableDefaultNoneItems

A EnableDefaultNoneItems tulajdonság azt szabályozza, hogy az elemek (a buildelési folyamatban nem szereplő fájlok) implicit módon szerepelnek-e None a projektben. Az alapértelmezett érték a true. Állítsa be a EnableDefaultNoneItems tulajdonságot úgy, hogy false letiltsa az elemek implicit felvételét None .

<PropertyGroup>
  <EnableDefaultNoneItems>false</EnableDefaultNoneItems>
</PropertyGroup>

Kódelemzési tulajdonságok

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

AnalysisLevel

A AnalysisLevel tulajdonság lehetővé teszi, hogy egy .NET kiadásnak megfelelően futtatandó kódelemzőket adjon meg. Minden .NET kiadás kódelemzési szabályok készletével rendelkezik. A készletből az adott kiadáshoz alapértelmezés szerint engedélyezett szabályok elemzik a kódot. Ha például .NET 8-ról .NET 9-re frissít, de nem szeretné, hogy az alapértelmezett kódelemzési szabályok megváltozjanak, állítsa AnalysisLevel8 értékre.

<PropertyGroup>
  <AnalysisLevel>8</AnalysisLevel>
</PropertyGroup>

Igény szerint megadhat egy összetett értéket ehhez a tulajdonsághoz, amely azt is meghatározza, hogy milyen agresszíven engedélyezze a szabályokat. Az összetett értékek formátuma <version>-<mode>az AnalysisMode értékek egyike, ahol az <mode> érték az AnalysisMode értékek egyike. Az alábbi példa a preview kódelemzők verzióját használja, és engedélyezi a recommended szabályok készletét.

<PropertyGroup>
  <AnalysisLevel>preview-recommended</AnalysisLevel>
</PropertyGroup>

Alapértelmezett érték:

  • Ha a projekt 5 vagy újabb .NET célokat céloz meg, vagy hozzáadta a AnalysisMode tulajdonságot, az alapértelmezett érték latest.
  • Ellenkező esetben ez a tulajdonság csak akkor lesz elhagyva, ha kifejezetten hozzáadja a projektfájlhoz.

Az alábbi táblázat a megadható értékeket mutatja be.

Value Meaning
latest A legújabb, kiadott kódelemzőket használja a rendszer. Ez az alapértelmezett beállítás.
latest-<mode> A legújabb, kiadott kódelemzőket használja a rendszer. Az <mode> érték határozza meg, hogy mely szabályok legyenek engedélyezve.
preview A legújabb kódelemzők akkor is használhatók, ha előzetes verzióban vannak.
preview-<mode> A legújabb kódelemzők akkor is használhatók, ha előzetes verzióban vannak. Az <mode> érték határozza meg, hogy mely szabályok legyenek engedélyezve.
10.0 Az .NET 10-es kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el.
10.0-<mode> Az .NET 10-es kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el. Az <mode> érték határozza meg, hogy mely szabályok legyenek engedélyezve.
10 Az .NET 10-es kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el.
10-<mode> Az .NET 10-es kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el. Az <mode> érték határozza meg, hogy mely szabályok legyenek engedélyezve.
9.0 A .NET 9-es kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el.
9.0-<mode> A .NET 9-es kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el. Az <mode> érték határozza meg, hogy mely szabályok legyenek engedélyezve.
9 A .NET 9-es kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el.
9-<mode> A .NET 9-es kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el. Az <mode> érték határozza meg, hogy mely szabályok legyenek engedélyezve.
8.0 A .NET 8 kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el.
8.0-<mode> A .NET 8 kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el. Az <mode> érték határozza meg, hogy mely szabályok legyenek engedélyezve.
8 A .NET 8 kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el.
8-<mode> A .NET 8 kiadáshoz elérhető szabályok halmaza akkor is használható, ha újabb szabályok érhetők el. Az <mode> érték határozza meg, hogy mely szabályok legyenek engedélyezve.

Note

  • Ha a EnforceCodeStyleInBuild értéket állítja betrue
  • Ha összetett értéket AnalysisLevelad meg, nem kell AnalysisMode értéket megadnia. Azonban ha mégis, AnalysisLevel elsőbbséget AnalysisModeélvez a .
  • Ez a tulajdonság nincs hatással a kódelemzésre olyan projektekben, amelyek nem hivatkoznak projekt SDK-ra például a Microsoft hivatkozó örökölt .NET-keretrendszer-projektekre. CodeAnalysis.NetAnalyzers NuGet-csomag. További információ: Kódelemzés engedélyezése régi projektekben.

AnalysisLevel-kategória<>

Ez a tulajdonság megegyezik az AnalysisLevel tulajdonságával, azzal a kivételrel, hogy csak a kódelemzési szabályok egy adott kategóriájára vonatkozik. Ez a tulajdonság lehetővé teszi, hogy a kódelemzők egy adott kategóriához eltérő verzióját használja, vagy hogy a többi szabálykategóriától eltérő szinten engedélyezze vagy tiltsa le a szabályokat. Ha kihagyja ezt a tulajdonságot egy adott szabálykategória esetében, az alapértelmezés szerint az AnalysisLevel érték lesz. Az elérhető értékek megegyeznek az AnalysisLevel értékeivel.

<PropertyGroup>
  <AnalysisLevelSecurity>preview</AnalysisLevelSecurity>
</PropertyGroup>
<PropertyGroup>
  <AnalysisLevelSecurity>preview-recommended</AnalysisLevelSecurity>
</PropertyGroup>

Az alábbi táblázat felsorolja az egyes szabálykategóriák tulajdonságnevét.

Tulajdonság neve Szabálykategória
<AnalysisLevelDesign> Tervezési szabályok
<AnalysisLevelDocumentation> Dokumentációs szabályok
<AnalysisLevelGlobalization> Globalizációs szabályok
<AnalysisLevelInteroperability> Hordozhatóság és együttműködési szabályok
<AnalysisLevelMaintainability> Karbantarthatósági szabályok
<AnalysisLevelNaming> Elnevezési szabályok
<AnalysisLevelPerformance> Teljesítményszabályok
<AnalysisLevelSingleFile> Egyfájlos alkalmazásszabályok
<AnalysisLevelReliability> Megbízhatósági szabályok
<AnalysisLevelSecurity> Biztonsági szabályok
<AnalysisLevelStyle> Kódstílusú (IDEXXXX) szabályok
<AnalysisLevelUsage> Használati szabályok

AnalysisMode

A .NET SDK az összes "CA" kódminőségi szabályt tartalmazza. Alapértelmezés szerint csak zós szabályok vannak engedélyezve az egyes .NET kiadások build figyelmeztetéseiként. A AnalysisMode tulajdonság lehetővé teszi az alapértelmezés szerint engedélyezett szabályok testreszabását. Válthat egy agresszívebb elemzési módra, ahol külön-külön is kikapcsolhatja a szabályokat, vagy egy konzervatívabb elemzési módra, ahol bizonyos szabályokra is választhat. Ha például az összes szabályt build figyelmeztetésként szeretné engedélyezni, állítsa az értéket a következőre All: .

<PropertyGroup>
  <AnalysisMode>All</AnalysisMode>
</PropertyGroup>

Az alábbi táblázat az elérhető beállításértékeket mutatja be. Az engedélyezett szabályok számának növekvő sorrendjében vannak felsorolva.

Value Description
None Minden szabály le van tiltva. Az egyes szabályok engedélyezéséhez szelektíven is dönthet.
Default Alapértelmezett mód, ahol egyes szabályok buildértesített figyelmeztetésként vannak engedélyezve, bizonyos szabályok Visual Studio IDE javaslatokként vannak engedélyezve, a többi pedig le van tiltva.
Minimum Agresszívebb mód, mint Default mód. A buildkényszerítéshez erősen ajánlott javaslatok build figyelmeztetésként engedélyezve vannak. Ha meg szeretné tekinteni, hogy ez mely szabályokat tartalmazza, tekintse meg a %ProgramFiles%/dotnet/sdk/[version]/Sdks/Microsoft.NET. Sdk/analyzers/build/config/analysislevel_[level]_minimum.globalconfig fájl. (A .NET 7- és korábbi verziói esetében a fájlkiterjesztés .editorconfig.)
Recommended Agresszívebb mód, mint Minimum a mód, ahol több szabály engedélyezve van a buildekre vonatkozó figyelmeztetésekként. Ha meg szeretné tekinteni, hogy ez mely szabályokat tartalmazza, tekintse meg a %ProgramFiles%/dotnet/sdk/[version]/Sdks/Microsoft.NET. Sdk/analyzers/build/config/analysislevel_[level]_recommended.globalconfig fájl. (A .NET 7- és korábbi verziói esetében a fájlkiterjesztés .editorconfig.)
All A rendszer minden szabályt engedélyez összeállítási figyelmeztetésként*. A letiltásukhoz szelektíven letilthatja az egyes szabályokat.

* A következő szabályok nem engedélyezettek Ezek az örökölt szabályok elavultak lehetnek egy későbbi verzióban. A bejegyzésekkel dotnet_diagnostic.CAxxxx.severity = <severity> azonban egyenként is engedélyezheti őket.

Note

  • Ha a EnforceCodeStyleInBuild értéket állítja betrue
  • Ha például összetett értéket használ az AnalysisLevelhez, <AnalysisLevel>9-recommended</AnalysisLevel>ezt a tulajdonságot teljes egészében kihagyhatja. Ha azonban mindkét tulajdonságot megadja, AnalysisLevel elsőbbséget AnalysisModeélvez.

AnalysisMode<kategória>

Ez a tulajdonság ugyanaz, mint az AnalysisMode, azzal a kivételrel, hogy csak a kódelemzési szabályok egy adott kategóriájára vonatkozik. Ez a tulajdonság lehetővé teszi, hogy a többi szabálykategóriától eltérő szinten engedélyezze vagy tiltsa le a szabályokat. Ha kihagyja ezt a tulajdonságot egy adott szabálykategória esetében, az alapértelmezés szerint az AnalysisMode érték lesz. A rendelkezésre álló értékek megegyeznek az AnalysisMode értékeivel.

<PropertyGroup>
  <AnalysisModeSecurity>All</AnalysisModeSecurity>
</PropertyGroup>

Az alábbi táblázat felsorolja az egyes szabálykategóriák tulajdonságnevét.

Tulajdonság neve Szabálykategória
<AnalysisModeDesign> Tervezési szabályok
<AnalysisModeDocumentation> Dokumentációs szabályok
<AnalysisModeGlobalization> Globalizációs szabályok
<AnalysisModeInteroperability> Hordozhatóság és együttműködési szabályok
<AnalysisModeMaintainability> Karbantarthatósági szabályok
<AnalysisModeNaming> Elnevezési szabályok
<AnalysisModePerformance> Teljesítményszabályok
<AnalysisModeSingleFile> Egyfájlos alkalmazásszabályok
<AnalysisModeReliability> Megbízhatósági szabályok
<AnalysisModeSecurity> Biztonsági szabályok
<AnalysisModeStyle> Kódstílusú (IDEXXXX) szabályok
<AnalysisModeUsage> Használati szabályok

CodeAnalysisTreatWarningsAsErrors

A CodeAnalysisTreatWarningsAsErrors tulajdonság lehetővé teszi annak konfigurálását, hogy a kódminőség-elemzési figyelmeztetéseket (CAxxxx) figyelmeztetésként kell-e kezelni, és megszakítani a buildet. Ha a projektek létrehozásakor a -warnaserror jelzőt használja, a .NET kódminőség-elemzés figyelmeztetések is hibaüzenetként lesznek kezelve. Ha nem szeretné, hogy a kódminőség-elemzési figyelmeztetések hibákként legyenek kezelve, beállíthatja az CodeAnalysisTreatWarningsAsErrors MSBuild tulajdonságot false a projektfájlban.

<PropertyGroup>
  <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>

EnableNETAnalyzers

.NET kódminőség-elemzés alapértelmezés szerint engedélyezve van az 5-ös vagy újabb verziót .NET célzó projektek esetében. Ha az .NET 5+ SDK használatával fejleszt, engedélyezheti .NET kódelemzést olyan SDK-stílusú projektekhez, amelyek a .NET korábbi verzióit célják, ha a EnableNETAnalyzers tulajdonságot true értékre állítja. Ha bármely projektben le szeretné tiltani a kódelemzést, állítsa ezt a tulajdonságot a következőre false: .

<PropertyGroup>
  <EnableNETAnalyzers>true</EnableNETAnalyzers>
</PropertyGroup>

Note

Ez a tulajdonság kifejezetten az .NET 5+ SDK beépített elemzőire vonatkozik. NuGet-kódelemzési csomag telepítésekor nem használható.

EnforceCodeStyleInBuild

.NET kódstílus-elemzés alapértelmezés szerint le van tiltva az összes .NET projekt buildjén. A .NET projektek kódstílus-elemzését úgy engedélyezheti, hogy a EnforceCodeStyleInBuild tulajdonságot true értékre állítja. (Teljesítménybeli okokból azonban a csak a Visual Studio IDE vonatkozó kódstílus-szabályok nem lesznek futtatva.)

<PropertyGroup>
  <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>

Minden figyelmeztetésnek vagy hibának konfigurált kódstílus-szabály a buildelés és a jelentés megsértése esetén lesz végrehajtva.

_SkipUpgradeNetAnalyzersNuGetWarning

A _SkipUpgradeNetAnalyzersNuGetWarning tulajdonság lehetővé teszi annak konfigurálását, hogy figyelmeztetést kap-e, ha olyan NuGet-csomagból származó kódelemzőket használ, amely elavult a legújabb .NET SDK kódelemzőivel összehasonlítva. A figyelmeztetés a következőhöz hasonló:

A .NET SDK újabb elemzőkkel rendelkezik a 6.0.0-s verzióval, mint a Microsoft 5.0.3-ás verziója. A CodeAnalysis.NetAnalyzers csomagja biztosítja. Frissítse vagy távolítsa el a csomaghivatkozást.

Ha el szeretné távolítani ezt a figyelmeztetést, és továbbra is használni szeretné a NuGet-csomag kódelemzőinek verzióját, állítsa be _SkipUpgradeNetAnalyzersNuGetWarningtrue a projektfájlban.

<PropertyGroup>
  <_SkipUpgradeNetAnalyzersNuGetWarning>true</_SkipUpgradeNetAnalyzersNuGetWarning>
</PropertyGroup>

Futtatókörnyezet konfigurációs tulajdonságai

Néhány futtatókörnyezeti viselkedés konfigurálásához adja meg az MSBuild tulajdonságokat az alkalmazás projektfájljában. A futtatókörnyezeti viselkedés konfigurálásának egyéb módjairól további információt a futtatókörnyezet konfigurációs beállításai között talál.

AutoreleasePoolSupport

A AutoreleasePoolSupport tulajdonság konfigurálja, hogy minden felügyelt szál kap-e implicit NSAutoreleasePool-t , amikor támogatott macOS-platformon fut. További információkért lásd AutoreleasePool a felügyelt szálakat.

<PropertyGroup>
  <AutoreleasePoolSupport>true</AutoreleasePoolSupport>
</PropertyGroup>

ConcurrentGarbageCollection

A ConcurrentGarbageCollection tulajdonság konfigurálja, hogy engedélyezve van-e a háttérbeli (egyidejű) szemétgyűjtés . Állítsa be az értéket úgy, hogy false letiltsa a háttérbeli szemétgyűjtést. További információkért lásd a háttérbeli csoportházirend-objektumot.

<PropertyGroup>
  <ConcurrentGarbageCollection>false</ConcurrentGarbageCollection>
</PropertyGroup>

InvariantGlobalization

A InvariantGlobalization tulajdonság konfigurálja, hogy az alkalmazás globalizációs invariáns módban fut-e, ami azt jelenti, hogy nem fér hozzá a kultúraspecifikus adatokhoz. Állítsa be, hogy true az érték globalizációs invariant módban fusson. További információ: Invariant mód.

<PropertyGroup>
  <InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>

PredefinedCulturesOnly

A .NET 6-os és újabb verziókban a PredefinedCulturesOnly tulajdonság konfigurálja, hogy az alkalmazások az invariáns kultúrán kívül más kultúrákat is létrehozhatnak-e, ha globalization-invariáns mód engedélyezve van. Az alapértelmezett érték a true. Állítsa be az értéket úgy, hogy false lehetővé tegye az új kultúra létrehozását globalizációs invariáns módban.

<PropertyGroup>
  <PredefinedCulturesOnly>false</PredefinedCulturesOnly>
</PropertyGroup>

További információ: Kultúra létrehozása és esetleképezés globalizációs invariáns módban.

RetainVMGarbageCollection

A RetainVMGarbageCollection tulajdonság úgy konfigurálja a szemétgyűjtőt, hogy a törölt memóriaszegmenseket egy készenléti listára helyezze a későbbi használat vagy kiadás céljából. Az érték beállítása arra true utasítja a szemétgyűjtőt, hogy helyezze a szegmenseket egy készenléti listára. További információ: Virtuális gép megőrzése.

<PropertyGroup>
  <RetainVMGarbageCollection>true</RetainVMGarbageCollection>
</PropertyGroup>

ServerGarbageCollection

A ServerGarbageCollection tulajdonság konfigurálja, hogy az alkalmazás munkaállomás szemétgyűjtést vagy kiszolgálói szemétgyűjtést használ-e. Állítsa be az értéket true kiszolgálói szemétgyűjtés használatára. További információ: Munkaállomás és kiszolgáló.

<PropertyGroup>
  <ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>

ThreadPoolMaxThreads

A ThreadPoolMaxThreads tulajdonság konfigurálja a feldolgozószál-készlet szálainak maximális számát. További információt a Szálak maximális száma című témakörben talál.

<PropertyGroup>
  <ThreadPoolMaxThreads>20</ThreadPoolMaxThreads>
</PropertyGroup>

ThreadPoolMinThreads

A ThreadPoolMinThreads tulajdonság konfigurálja a feldolgozószál-készlet szálainak minimális számát. További információ: Minimális szálak.

<PropertyGroup>
  <ThreadPoolMinThreads>4</ThreadPoolMinThreads>
</PropertyGroup>

TieredCompilation

A TieredCompilation tulajdonság azt konfigurálja, hogy az igény szerinti (JIT) fordító rétegzett fordítást használ-e. Állítsa be az értéket a false rétegzett fordítás letiltásához. További információ: Rétegzett fordítás.

<PropertyGroup>
  <TieredCompilation>false</TieredCompilation>
</PropertyGroup>

TieredCompilationQuickJit

A TieredCompilationQuickJit tulajdonság konfigurálja, hogy a JIT-fordító gyors JIT-t használ-e. Állítsa be az értéket a false gyors JIT letiltásához. További információ: Quick JIT.

<PropertyGroup>
  <TieredCompilationQuickJit>false</TieredCompilationQuickJit>
</PropertyGroup>

TieredCompilationQuickJitForLoops

A TieredCompilationQuickJitForLoops tulajdonság konfigurálja, hogy a JIT-fordító gyors JIT-t használ-e hurkokat tartalmazó metódusokon. Állítsa be az értéket a true gyors JIT engedélyezéséhez a hurkokat tartalmazó metódusokon. További információ: Quick JIT for loops.

<PropertyGroup>
  <TieredCompilationQuickJitForLoops>true</TieredCompilationQuickJitForLoops>
</PropertyGroup>

TieredPGO

A TieredPGO tulajdonság azt szabályozza, hogy engedélyezve van-e a dinamikus vagy rétegzett profilalapú optimalizálás (PGO). Állítsa be az értéket a true rétegzett PGO engedélyezéséhez. További információ: Profilalapú optimalizálás.

<PropertyGroup>
  <TieredPGO>true</TieredPGO>
</PropertyGroup>

UseWindowsThreadPool

A UseWindowsThreadPool tulajdonság konfigurálja, hogy a szálkészlet szálkezelése delegálva van-e a Windows szálkészletbe (csak Windows). Az alapértelmezett érték a false, ebben az esetben a .NET szálkészletet használja. További információ: Windows szálkészlet.

<PropertyGroup>
  <UseWindowsThreadPool>true</UseWindowsThreadPool>
</PropertyGroup>

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

AssetTargetFallback

A AssetTargetFallback tulajdonság lehetővé teszi további kompatibilis keretrendszerverziók megadását a projekthivatkozásokhoz és a NuGet-csomagokhoz. Ha például egy csomagfüggőséget ad meg, PackageReference de a csomag nem tartalmaz olyan objektumokat, amelyek kompatibilisek a projektjeivel TargetFramework, a AssetTargetFallback tulajdonság megjelenik. A hivatkozott csomag kompatibilitását a rendszer a megadott cél-keretrendszerek használatával újraellenőrizi AssetTargetFallback. Ez a tulajdonság lecseréli az elavult tulajdonságot PackageTargetFallback.

A tulajdonságot egy vagy több AssetTargetFallback állíthatja be.

<PropertyGroup>
  <AssetTargetFallback>net461</AssetTargetFallback>
</PropertyGroup>

DisableImplicitFrameworkReferences

A DisableImplicitFrameworkReferences tulajdonság implicit FrameworkReference elemeket vezérel a Core 3.0 és újabb verziók .NET. .NET Core 2.1 vagy .NET Standard 2.0-s és korábbi verzióinak megcélzásakor az implicit PackageReference elemeket vezérli a metapackage-csomagokba. (A metacsomagok olyan keretrendszeralapú csomagok, amelyek csak más csomagoktól való függőségekből állnak.) Ez a tulajdonság az olyan implicit hivatkozásokat is szabályozza, mint a System és a System.Core .NET Framework megcélzásakor.

Állítsa be ezt a tulajdonságot az true implicit FrameworkReference vagy PackageReference elemek letiltására. Ha ezt a tulajdonságot trueállítja be, explicit hivatkozásokat adhat csak a szükséges keretrendszerekhez vagy csomagokhoz.

<PropertyGroup>
  <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
</PropertyGroup>

DisableTransitiveFrameworkReferenceDownloads

Állítsa be a DisableTransitiveFrameworkReferenceDownloads tulajdonságot, hogy true elkerülje a projekt által közvetlenül nem hivatkozott futtatókörnyezeti és célcsomagok letöltését.

<PropertyGroup>
  <DisableTransitiveFrameworkReferenceDownloads>true</DisableTransitiveFrameworkReferenceDownloads>
</PropertyGroup>

DisableTransitiveProjectReferences

A DisableTransitiveProjectReferences tulajdonság implicit projekthivatkozásokat vezérel. Állítsa be ezt a tulajdonságot implicit trueProjectReference elemek letiltására. Az implicit projekthivatkozások letiltása az örökölt projektrendszerhez hasonló nem tranzitív viselkedést eredményez.

Ha ez a truetulajdonság, az a függő projekt összes függőségére vonatkozó beállításhoz PrivateAssets="All" hasonló hatással van.

Ha ezt a tulajdonságot trueállítja be, explicit hivatkozásokat adhat hozzá csak a szükséges projektekhez.

<PropertyGroup>
  <DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences>
</PropertyGroup>

ManagePackageVersionsCentrally

A ManagePackageVersionsCentrally tulajdonság a 7. .NET került bevezetésre. Ha az adattár gyökerében lévő Directory.Packages.props fájlba állítja true, a projektek gyakori függőségeit egyetlen helyről kezelheti. A Címtár.Packages.props fájl elemeivel PackageVersion adhat hozzá verziókat a gyakori csomagfüggőségekhez . Ezután az egyes projektfájlokban kihagyhatja Version az attribútumokat a PackageReference központilag felügyelt csomagokra hivatkozó elemekből.

Példa Directory.Packages.props fájlra:

<PropertyGroup>
  <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
...
<ItemGroup>
  <PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
</ItemGroup>

Egyéni projektfájl:

<ItemGroup>
  <PackageReference Include="Microsoft.Extensions.Configuration" />
</ItemGroup>

További információkért lásd a központi csomagkezelést (CPM).

A hivatkozott csomagok visszaállítása telepíti az összes közvetlen függőséget és a függőségek összes függőségét. Testre szabhatja a csomagok visszaállítását olyan tulajdonságok megadásával, mint például RestorePackagesPath a és RestoreIgnoreFailedSourcesa . Ezekről és más tulajdonságokról további információt a visszaállítási célban talál.

<PropertyGroup>
  <RestoreIgnoreFailedSource>true</RestoreIgnoreFailedSource>
</PropertyGroup>

UseMauiEssentials

Állítsa be a UseMauiEssentials tulajdonságot úgy, true hogy explicit hivatkozást deklaráljon egy OLYAN projektre vagy csomagra, amely a MAUI Essentialstól függ. Ez a beállítás biztosítja, hogy a projekt lekéri a MAUI Essentials megfelelő ismert keretrendszer-referenciáját. Ha a projekt egy MAUI Essentials-t használó projektre hivatkozik, de nem állítja be ezt a tulajdonságot true, buildre vonatkozó figyelmeztetés NETSDK1186jelenhet meg.

<PropertyGroup>
  <UseMauiEssentials>true</UseMauiEssentials>
</PropertyGroup>

ValidateExecutableReferencesMatchSelfContained

A ValidateExecutableReferencesMatchSelfContained tulajdonság használható a végrehajtható projekthivatkozásokkal kapcsolatos hibák letiltására. Ha .NET észleli, hogy egy önálló végrehajtható projekt egy keretrendszerfüggő végrehajtható projektre hivatkozik, vagy fordítva, hibát okoz NETSDK1150 és NETSDK1151. Ha el szeretné kerülni ezeket a hibákat, ha a hivatkozás szándékos, állítsa a tulajdonságot a ValidateExecutableReferencesMatchSelfContained következőre false: .

<PropertyGroup>
  <ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>
</PropertyGroup>

WindowsSdkPackageVersion

A WindowsSdkPackageVersion tulajdonság a Windows SDK-célcsomag verziójának felülbírálásához használható. Ez a tulajdonság az 5. .NET lett bevezetve, és a FrameworkReference elem használatát váltja fel erre a célra.

<PropertyGroup>
  <WindowsSdkPackageVersion>10.0.19041.18</WindowsSdkPackageVersion>
</PropertyGroup>

Note

Nem javasoljuk a Windows SDK-verzió felülírását, mert a Windows SDK-célcsomagok az .NET 5+ SDK-t tartalmazzák. Ehelyett a legújabb Windows SDK-csomagra való hivatkozáshoz frissítse a .NET SDK verzióját. Ez a tulajdonság csak ritkán használható, például előzetes verziójú csomagok használata vagy a C#/WinRT verziójának felülbírálása.

A következő tulajdonságokat használják egy alkalmazás elindításához a dotnet run paranccsal:

RunArguments

A RunArguments tulajdonság határozza meg azokat az argumentumokat, amelyeket az alkalmazás a futtatáskor ad át az alkalmazásnak.

<PropertyGroup>
  <RunArguments>-mode dryrun</RunArguments>
</PropertyGroup>

Tip

Az alkalmazásnak továbbítandó további argumentumokat a következő beállítással --dotnet runadhatja meg:

RunWorkingDirectory

A RunWorkingDirectory tulajdonság határozza meg az alkalmazás folyamatának munkakönyvtárát. Lehet abszolút elérési út vagy a projektkönyvtárhoz viszonyított elérési út. Ha nem ad meg könyvtárat, OutDir akkor a rendszer munkakönyvtárként használja.

<PropertyGroup>
  <RunWorkingDirectory>c:\temp</RunWorkingDirectory>
</PropertyGroup>

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

SdkAnalysisLevel

A .NET 9-ben bevezetett SdkAnalysisLevel tulajdonság a strict SDK eszközkészletének konfigurálásához használható. Segít az SDK figyelmeztetési szintjeinek kezelésében olyan helyzetekben, amikor előfordulhat, hogy nem tudja rögzíteni az SDK-kat global.json vagy más módon. Ezzel a tulajdonsággal úgy jelezheti egy újabb SDK-nak, hogy úgy viselkedjen, mintha egy régebbi SDK lenne egy adott eszköz vagy funkció tekintetében, anélkül, hogy telepítenie kellene a régebbi SDK-t.

A tulajdonság megengedett értékei az SDK-funkciósávok, például a 8.0.100 és a 8.0.400. Az érték alapértelmezés szerint a futó SDK SDK-funkciósávja. Az SDK 9.0.102 esetében például a használni kívánt érték 9.0.100. (A .NET SDK verziószámáról további információt a Az .NET verziószámának megtekintése.)

<PropertyGroup>
  <SdkAnalysisLevel>8.0.400</SdkAnalysisLevel>
</PropertyGroup>

További információ: SDK Analysis Level Property and Usage.

Az alábbi táblázat összefoglalja azokat a diagnosztikákat és viselkedéseket, amelyeket a SDKAnalysisLevelrendszer érint.

SDKAnalysisLevel Description Frissített viselkedés
9.0.100 HTTP-források diagnosztika visszaállítása NU1302-hibát bocsát ki NU1803-figyelmeztetés helyett.
10.0.100 "Visszaállítás" csomag metszése PrunePackageReference alapértelmezés szerint engedélyezve van a 8+ vagy .NET .NET Standard 2.0+-t célzó projektek esetében.
10.0.100 "Visszaállítás" feloldó zárolási fájlokkal Továbbfejlesztett, .NET 9 függőségi gráffeloldót használ az örökölt függőségi gráffeloldó helyett (.NET 8 SDK és korábbi).
10.0.100 A PackageReference "visszaállítási" viselkedése verzió nélkül NU1015-hibát bocsát ki NU1603-figyelmeztetés helyett.

Note

Az érték által SdkAnalysisLevel engedélyezett viselkedés három fő kiadás után lejár (lejár). A 11.0.100-es verzió például csak a 8.0.100-ra vonatkozó értékeket tartja tiszteletben. A 12.0.100-es verzióban a korábbi verziókban a 8.0.100 érték beállításával SdkAnalysisLevel letiltható funkciók már nem lesznek letiltva.

Microsoft. Testing.Platformhoz kapcsolódó tulajdonságok

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

IsTestingPlatformApplication

Amikor a projekt hivatkozik a Microsoft. A Testing.Platform.MSBuild csomagban a IsTestingPlatformApplication beállítása true (amely szintén az alapértelmezett érték, ha nincs megadva) a következőket teszi:

  • Létrehozza a belépési pontot a tesztprojekthez.
  • Létrehozza a konfigurációs fájlt.
  • Észleli a bővítményeket.

Ha a tulajdonságot úgy állítja be, hogy false letiltsa a csomag tranzitív függőségét. A tranzitív függőség az, amikor egy olyan projekt, amely egy adott csomagra hivatkozó másik projektre hivatkozik, úgy viselkedik, mintha a csomagra hivatkozik . Ezt a tulajdonságot false általában egy tesztprojektre hivatkozó, nem tesztelési projektre állítja be. További információ: CS8892 hiba.

Ha a tesztprojekt MSTestre, NUnitra vagy xUnitra hivatkozik, a tulajdonság értéke megegyezik az EnableMSTestRunner.

Enable[NugetPackageNameWithoutDots]

A Microsoft engedélyezéséhez vagy letiltásához használjon Enable[NugetPackageNameWithoutDots] mintával rendelkező tulajdonságot. Testing.Platform (MTP) bővítmények.

Például az összeomlási memóriakép bővítmény engedélyezéséhez (NuGet-csomag Microsoft. Testing.Extensions.CrashDump) állítsa a EnableMicrosoftTestingExtensionsCrashDumptrue értékre.

További információ: Bővítmények engedélyezése vagy letiltása.

EnableAspireTesting

Ha az MSTest projekt SDK-t használja, a EnableAspireTesting tulajdonsággal behozhatja a teszteléshez usingAspireszükséges összes függőséget és alapértelmezett MSTest direktívát. Ez a tulajdonság az MSTest 3.4 és újabb verzióiban érhető el.

További információt a Tesztelés a következővel Aspirecímű témakörben talál.

EnablePlaywright

Ha az MSTest projekt SDK-t használja, a EnablePlaywright tulajdonsággal behozhatja a teszteléshez usingPlaywrightszükséges összes függőséget és alapértelmezett MSTest direktívát. Ez a tulajdonság az MSTest 3.4 és újabb verzióiban érhető el.

További információ: Playwright.

EnableMSTestRunner

A EnableMSTestRunner tulajdonság lehetővé teszi vagy letiltja az MTP használatát, amely a VSTest egyszerűsített és hordozható alternatíva. Ez a tulajdonság az MSTest 3.2-s és újabb verzióiban érhető el.

Note

Ha a projekt az MSTest SDK-t adja meg, nem kell beállítania ezt a tulajdonságot. Automatikusan be van állítva.

EnableNUnitRunner

A EnableNUnitRunner tulajdonság engedélyezi vagy letiltja az NUnit-futó használatát. Az NUnit futó egy könnyű és hordozható alternatíva a VSTest. Ez a tulajdonság az NUnit3TestAdapter 5.0-s és újabb verziójában érhető el.

UseMicrosoftTestingPlatformRunner

A UseMicrosoftTestingPlatformRunner tulajdonság engedélyezi vagy letiltja az MTP-futó használatát xUnit.v3 tesztprojektekben.

GenerateTestingPlatformEntryPoint

Ha úgy állítja be a GenerateTestingPlatformEntryPoint tulajdonságot, hogy false letiltsa a program belépési pontjának automatikus létrehozását az MTP-t használó tesztprojektekben. Ezt a tulajdonságot false akkor érdemes beállítani, ha manuálisan határoz meg egy belépési pontot, vagy amikor egy olyan végrehajtható projektre hivatkozik, amely szintén belépési ponttal rendelkezik.

További információ: CS8892 hiba.

A VSTest-projekt belépési pontjának létrehozásának szabályozásához használja a tulajdonságot GenerateProgramFile .

GenerateTestingPlatformConfigurationFile

A GenerateTestingPlatformConfigurationFile tulajdonság csak akkor érhető el, ha az IsTestingPlatformApplication az true. Ezzel engedélyezi a konfigurációs fájl másolását és átnevezését a kimeneti mappában.

TestingPlatformCaptureOutput

A TestingPlatformCaptureOutput tulajdonság azt szabályozza, hogy az MTP-tesztek futtatásakor a rendszer rögzíti és elrejti-e a felhasználó elől az összes olyan konzolkimenetet, dotnet test amelyet egy teszt végrehajtható írással ír. Alapértelmezés szerint a konzol kimenete rejtett. Ez a kimenet tartalmazza a szalagcímet, a verzióinformációkat és a formázott tesztadatokat. Állítsa be ezt a tulajdonságot úgy, hogy false az MSBuild kimenettel együtt jelenítse meg ezeket az információkat.

További információ: Teljes platformkimenet megjelenítése.

TestingPlatformCommandLineArguments

A TestingPlatformCommandLineArguments tulajdonság lehetővé teszi parancssori argumentumok megadását a tesztalkalmazáshoz az dotnet test MTP-tesztek futtatásakor. Az alábbi projektfájl-kódrészlet egy példát mutat be.

<PropertyGroup>
  ...
  <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
</PropertyGroup>

TestingPlatformDotnetTestSupport

A TestingPlatformDotnetTestSupport tulajdonság lehetővé teszi az MTP-alkalmazások tesztelését dotnet testa VSTest mód használatakor.

Note

Ne hívjon dotnet test fel vsTest- és MTP-projekteket is tartalmazó megoldást, mivel ez a forgatókönyv nem támogatott.

További információ: Tesztelés "dotnet-teszttel".

TestingPlatformShowTestsFailure

A TestingPlatformShowTestsFailure tulajdonság lehetővé teszi annak ellenőrzését, hogy a rendszer egyetlen hibát vagy egy sikertelen teszt összes hibáját jelenti-e, dotnet test amikor teszteket futtat. Alapértelmezés szerint a tesztelési hibák egy .log fájlba vannak összegezve, és tesztprojektenként egyetlen hiba lesz jelentve az MSBuildnek. A sikertelen tesztenkénti hibák megjelenítéséhez állítsa be ezt a tulajdonságot true a projektfájlba.

TestingExtensionsProfile

Az MSTest project SDK használatakor a TestingExtensionsProfile tulajdonság lehetővé teszi a használni kívánt profil kiválasztását. Az alábbi táblázat az engedélyezett értékeket mutatja be.

Value Description
Default Engedélyezi az MSTest.SDK ezen verziójához javasolt bővítményeket.
None Nincs engedélyezve bővítmény.
AllMicrosoft Engedélyezze a Microsoft által szállított összes bővítményt (beleértve a korlátozó licenccel rendelkező bővítményeket is).

További információ: MTP-profil.

VSTesthez kapcsolódó tulajdonságok

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

IsTestProject

A tulajdonságot a értékre állítja>Microsoft.NET. Test.Sdk NuGet-csomag. Azt jelzi, hogy egy projekt VSTest-tesztprojekt-e, hogy felismerje dotnet testa program.

Note

Ha a projekt megadja a MSTest SDK, akkor ezt a tulajdonságot nem kell beállítania, mivel az MSTest.Sdk a Microsoft.NET hivatkozik. Test.Sdk NuGet-csomag.

UseVSTest

Állítsa be a UseVSTest tulajdonságot úgy, hogy true az MSTest projekt SDK használatakor váltson az MTP-ről a VSTest-futóra.

MSTesthez kapcsolódó tulajdonságok

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

MSTestAnalysisMode

Ez a tulajdonság dönti el, hogy mely elemzők legyenek engedélyezve, melyik súlyosságnál. További információ: MSTest-kódelemzési.

Ebben a szakaszban a következő MSBuild tulajdonságokat dokumentáljuk:

AppHostDotNetSearch

A AppHostDotNetSearch tulajdonság konfigurálja, hogy az alkalmazáshoz létrehozott natív végrehajtható hogyan keres egy .NET telepítést. Ez a tulajdonság csak a közzététel során létrehozott végrehajtható fájlt érinti, nem a buildet.

<PropertyGroup>
  <AppHostDotNetSearch>Global</AppHostDotNetSearch>
</PropertyGroup>

Az alábbi táblázat az érvényes értékeket sorolja fel. Több értéket is megadhat, pontosvesszővel elválasztva.

Value Meaning
AppLocal Az alkalmazás végrehajtható mappája
AppRelative Az AppHostRelativeDotNet által megadott végrehajtható alkalmazás elérési útja
EnvironmentVariable DOTNET_ROOT[_<arch>] Környezeti változók értéke
Global Regisztrált és alapértelmezett globális telepítési helyek

Ez a tulajdonság a 9. .NET lett bevezetve.

AppHostRelativeDotNet

A AppHostRelativeDotNet tulajdonság lehetővé teszi a végrehajtható alkalmazás relatív elérési útjának megadását, hogy megkeresse a .NET telepítést, amikor az konfigurálva van erre. AppHostRelativeDotNet A tulajdonság beállítása azt jelenti, hogy AppHostDotNetSearch az .AppRelative Ez a tulajdonság csak a közzététel során létrehozott végrehajtható fájlt érinti, nem a buildet.

<PropertyGroup>
  <AppHostRelativeDotNet>./relative/path/to/runtime</AppHostRelativeDotNet>
</PropertyGroup>

Ez a tulajdonság a 9. .NET lett bevezetve.

EnableComHosting

A EnableComHosting tulajdonság azt jelzi, hogy egy szerelvény COM-kiszolgálót biztosít. A beállítás EnableComHosting azt true is jelenti, hogy az EnableDynamicLoading a true.

<PropertyGroup>
  <EnableComHosting>True</EnableComHosting>
</PropertyGroup>

További információ: Összetevők .NET com.

EnableDynamicLoading

A EnableDynamicLoading tulajdonság azt jelzi, hogy egy szerelvény dinamikusan betöltött összetevő. Az összetevő lehet com-kódtár vagy nem COM-kódtár, amely natív gazdagépről használható, vagy beépülő modulként használható. A tulajdonság true beállítása a következő effektusokkal jár:

  • Létre kell hozni egy .runtimeconfig.json fájlt.
  • A RollForward értéke .LatestMinor
  • A NuGet-hivatkozások helyileg lesznek másolva.
<PropertyGroup>
  <EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>

Létrehozott fájltulajdonságok

A következő tulajdonságok a létrehozott fájlok kódját érintik:

CompilerGeneratedFilesOutputPath

A CompilerGeneratedFilesOutputPath tulajdonság azt a könyvtárat adja meg, amelyben a forrásgenerátor kimeneti fájljai az EmitCompilerGeneratedFiles beállításakor íródnak true. Az elérési út lehet abszolút vagy a projektkönyvtárhoz képest. Ha nem állítja be ezt a tulajdonságot, a létrehozott fájlok egy generált alkönyvtárba kerülnek a köztes kimeneti elérési út alatt (általában obj/<configuration>/<targetframework>/generated).

<PropertyGroup>
  <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
  <CompilerGeneratedFilesOutputPath>Generated</CompilerGeneratedFilesOutputPath>
</PropertyGroup>

Ha ezt a tulajdonságot egy útvonalra állítja be a projekt forrásfán belül, a létrehozott fájlokat a jövőbeli buildek forrásfájlként fogják fel. A dupla fordítás elkerülése érdekében zárja ki a létrehozott fájlokat az Compile elemből:

<ItemGroup>
  <Compile Remove="$(CompilerGeneratedFilesOutputPath)\**\*.cs" />
</ItemGroup>

DisableImplicitNamespaceImports

A DisableImplicitNamespaceImports tulajdonság használatával letilthatja az implicit névtérimportálást Visual Basic projektekben, amelyek .NET 6-os vagy újabb verziót céloznak meg. Az implicit névterek az alapértelmezett névterek, amelyek globálisan importálva vannak egy Visual Basic projektben. Állítsa be ezt a tulajdonságot úgy, hogy letiltsa az true implicit névtérimportálást.

<PropertyGroup>
  <DisableImplicitNamespaceImports>true</DisableImplicitNamespaceImports>
</PropertyGroup>

EmitCompilerGeneratedFiles

A EmitCompilerGeneratedFiles tulajdonság azt szabályozza, hogy a forrásgenerátor kimeneti fájljai lemezre vannak-e írva a buildelés során. Állítsa be ezt a tulajdonságot true a viselkedés engedélyezéséhez. Alapértelmezés szerint a forrásgenerátor kimenete csak a memóriában létezik, és nincs lemezre írva.

<PropertyGroup>
  <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
</PropertyGroup>

Ha ezt a tulajdonságot trueállítja be, a létrehozott fájlok egy generált alkönyvtárba kerülnek a köztes kimeneti elérési út alatt (általában obj/configuration</><targetframework>/generated), hacsak nem ad meg egy másik helyet a CompilerGeneratedFilesOutputPath tulajdonság használatával.

A létrehozott fájlok lemezre írása lehetővé teszi a fájlok vizsgálatát. Csak akkor véglegesítse a létrehozott fájlokat a forrásvezérléshez, ha van egy konkrét oka, például ha a generátorok nem érhetők el a buildkörnyezetben, vagy ha felül kell vizsgálnia a determinisztikus generált összetevőket.

ImplicitUsings

A ImplicitUsings tulajdonság használható az implicit global using irányelvek engedélyezésére és letiltására olyan C#-projektekben, amelyek .NET 6-os vagy újabb verziót, valamint a C# 10-es vagy újabb verziót célják. Ha a funkció engedélyezve van, a .NET SDK global using irányelveket ad hozzá az alapértelmezett névterekhez a projekt SDK típusától függően. Állítsa be ezt a tulajdonságot implicit true irányelvekreenable, vagy global using engedélyezze azt. Az implicit global using direktívák letiltásához távolítsa el a tulajdonságot, vagy állítsa be a következőre false : vagy disable.

<PropertyGroup>
  <ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>

Note

A 6-os vagy újabb .NET megcélzott új C#-projektek sablonjai alapértelmezés szerint ImplicitUsingsenable értékre vannak beállítva.

Explicit global using direktíva definiálásához adjon hozzá egy Használat elemet.

Items

Az MSBuild elemek bemenetek a buildelési rendszerbe. Az elemek a típusuknak megfelelően vannak megadva, ami az elem neve. Például CompileReference két gyakori elemtípus. A .NET SDK a következő további elemtípusokat teszi elérhetővé:

A standard elemattribútumok bármelyikét használhatja például ezeken IncludeUpdate az elemeken. Új Include elem hozzáadására és meglévő elem módosítására használható Update . A Update például gyakran használják az .NET SDK által implicit módon hozzáadott elemek módosítására.

AssemblyMetadata

Az AssemblyMetadata elem egy kulcs-érték pár AssemblyMetadataAttribute szerelvény attribútumát adja meg. A Include metaadatok lesznek a kulcs, a Value metaadatok pedig az érték.

<ItemGroup>
  <AssemblyMetadata Include="Serviceable" Value="True" />
</ItemGroup>

InternalsVisibleTo

Az InternalsVisibleTo elem létrehoz egy InternalsVisibleToAttribute szerelvényattribútumot a megadott barátszerelvényhez.

<ItemGroup>
  <InternalsVisibleTo Include="MyProject.Tests" />
</ItemGroup>

Ha az ismerős szerelvény aláírt, megadhat egy választható Key metaadatokat a teljes nyilvános kulcs megadásához. Ha nem ad meg Key metaadatokat, és $(PublicKey) egy elérhető, akkor a rendszer ezt a kulcsot használja. Ellenkező esetben a rendszer nem ad hozzá nyilvános kulcsot az attribútumhoz.

FrameworkReference

A FrameworkReference elem egy .NET megosztott keretrendszerre mutató hivatkozást határoz meg.

Az Include attribútum megadja a keretrendszer azonosítóját.

A projektfájl kódrészlete az alábbi példában a Microsoft.AspNetCore.App megosztott keretrendszerre hivatkozik.

<ItemGroup>
  <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

PackageReference

Az PackageReference elem egy NuGet-csomagra mutató hivatkozást határoz meg.

Az Include attribútum a csomagazonosítót adja meg. Az Version attribútum megadja a verzió vagy a verziótartományt. A minimális verzió, a maximális verzió, a tartomány vagy a pontos egyezés megadásáról további információt a Verziótartományok című témakörben talál.

Az alábbi példában szereplő projektfájl-kódrészlet a System.Runtime csomagra hivatkozik.

<ItemGroup>
  <PackageReference Include="System.Runtime" Version="4.3.0" />
</ItemGroup>

A függőségi eszközök olyan metaadatokkal is vezérelhetők, mint a PrivateAssets.

<ItemGroup>
  <PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0">
    <PrivateAssets>all</PrivateAssets>
  </PackageReference>
</ItemGroup>

További információ: Csomaghivatkozások a projektfájlokban.

TrimmerRootAssembly

Az TrimmerRootAssembly elem lehetővé teszi, hogy kizárja a szerelvényt a vágásból. A vágás a futtatókörnyezet nem használt részeinek egy csomagolt alkalmazásból való eltávolításának folyamata. Egyes esetekben előfordulhat, hogy a vágás helytelenül távolítja el a szükséges hivatkozásokat.

Az alábbi XML kizárja a szerelvényt a System.Security vágásból.

<ItemGroup>
  <TrimmerRootAssembly Include="System.Security" />
</ItemGroup>

További információ: Vágási beállítások.

Using

Az Using elem lehetővé teszi, hogy globálisan belefoglaljon egy névteret a C#-projektbe, így nem kell irányelveket using hozzáadnia a névtérhez a forrásfájlok tetején. Ez az elem hasonló a Import elemhez, amely ugyanahhoz a célra használható Visual Basic projektekben. Ez a tulajdonság a 6. .NET-tól érhető el.

<ItemGroup>
  <Using Include="My.Awesome.Namespace" />
</ItemGroup>

Az elem használatával Using globális using <alias> és using static <type> direktívák is definiálhatók.

<ItemGroup>
  <Using Include="My.Awesome.Namespace" Alias="Awesome" />
</ItemGroup>

Például:

  • <Using Include="Microsoft.AspNetCore.Http.Results" Alias="Results" /> global using Results = global::Microsoft.AspNetCore.Http.Results;
  • <Using Include="Microsoft.AspNetCore.Http.Results" Static="True" /> global using static global::Microsoft.AspNetCore.Http.Results;

További információ: aliasolt using irányelvek és using static <type> irányelvek.

Elem metaadatai

A standard MSBuild elemattribútumok mellett az .NET SDK a következő elem metaadatcímkéket teszi elérhetővé:

CopyToPublishDirectory

Az CopyToPublishDirectory MSBuild elem metaadatai a közzétételi könyvtárba másolt elemet vezérli. Az alábbi táblázat az engedélyezett értékeket mutatja be.

Value Description
PreserveNewest Csak akkor másolja át az elemet, ha módosult a forráshelyen.
IfDifferent Csak akkor másolja át az elemet, ha a forrásban vagy a célhelyen módosult. Ez a beállítás olyan helyzetekben hasznos, amikor vissza kell állítania a közzététel után bekövetkező módosításokat.
Always Mindig másolja az elemet.
Never Soha ne másolja át az elemet.

Teljesítmény szempontjából előnyösebb, PreserveNewest mert növekményes buildelést tesz lehetővé. Kerülje a Always használatát, és használja helyette a IfDifferent, így az I/O-írások hatástalanok lesznek.

<ItemGroup>
  <None Update="appsettings.Development.json" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>

LinkBase

A projektkönyvtáron és annak alkönyvtárán kívül eső elemek esetén a közzétételi cél az elem Hivatkozás metaadataival határozza meg, hogy hová másolja az elemet. Link azt is meghatározza, hogy a projektfán kívüli elemek hogyan jelenjenek meg a Visual Studio Megoldáskezelő ablakában.

Ha Link nincs megadva a projektkontúlon kívül eső elemhez, az alapértelmezés szerint a következő lesz %(LinkBase)\%(RecursiveDir)%(Filename)%(Extension). LinkBase lehetővé teszi a projektkontúlon kívüli elemek ésszerű alapmappájának megadását. Az alapmappa alatti mappahierarchia megmarad a következőn keresztül RecursiveDir: . Ha LinkBase nincs megadva, az az elérési útból Link hiányzik.

<ItemGroup>
  <Content Include="..\Extras\**\*.cs" LinkBase="Shared"/>
</ItemGroup>

Az alábbi képen látható, hogyan jelenik meg a Megoldáskezelő az előző elemen keresztül Include glob fájl.

Megoldáskezelő linkBase metadata.

Lásd még