Delen via


Eigenschappen bouwen voor iOS, Mac Catalyst, macOS en tvOS

MSBuild-eigenschappen bepalen het gedrag van de doelen. Ze worden opgegeven in het projectbestand, bijvoorbeeld MyApp.csproj, binnen een MSBuild PropertyGroup.

AltoolPath

Het volledige pad naar het hulpprogramma altool.

Het standaardgedrag is om xcrun altoolte gebruiken.

AppBundleResourcePrefix

De map waarin resources worden opgeslagen (dit voorvoegsel wordt verwijderd bij het kopiëren van resources naar de app-bundel).

Als deze eigenschap niet expliciet is ingesteld, neemt deze eigenschap de waarde over van de platformspecifieke eigenschappen van het resourcevoorvoegsel (IPhoneResourcePrefix, MonoMacResourcePrefix of XamMacResourcePrefix , afhankelijk van het platform).

Standaard: 'Resources'

AppBundleDir

De locatie van de ingebouwde app-bundel.

AppBundleExtraOptions

Geavanceerde aanvullende argumenten voor het maken van app-bundels.

De geldige set argumenten is afhankelijk van het platform.

Deze moeten doorgaans niet worden gebruikt, tenzij deze zijn opgegeven door een Microsoft-technicus.

AppIcon

De AppIcon itemgroep kan worden gebruikt om een app-pictogram voor de app op te geven.

De waarde van de eigenschap moet verwijzen naar de bestandsnaam van een .appiconset (voor iOS, macOS en Mac Catalyst) of .brandassets (voor tvOS) afbeeldingsresource in een assetcatalogus.

Voorbeeld:

<PropertyGroup>
    <!-- The value to put in here for the "Resources/MyImages.xcassets/MyAppIcon.appiconset" resource would be "MyAppIcon" -->
    <AppIcon>MyAppIcon</AppIcon>
</PropertyGroup>

Zie ook:

ApplicationDisplayVersion

Als dit is ingesteld, geeft u de CFBundleShortVersionString waarde op in het app-manifest (Info.plist).

Dit is een eigenschap die ondersteuning biedt voor .NET Single Project.

Zie OneDotNetSingleProject voor meer informatie.

ApplicationId

Als dit is ingesteld, geeft u de CFBundleIdentifier waarde op in het app-manifest (Info.plist).

Dit is een eigenschap die ondersteuning biedt voor .NET Single Project.

Zie OneDotNetSingleProject voor meer informatie.

Applicatietitel

Als dit is ingesteld, geeft u de CFBundleDisplayName op in het app-manifest (Info.plist).

Dit is een eigenschap die ondersteuning biedt voor .NET Single Project.

Zie OneDotNetSingleProject voor meer informatie.

Applicatieversie

Als dit is ingesteld, geeft u de CFBundleVersion op in het app-manifest (Info.plist).

Dit is een eigenschap die ondersteuning biedt voor .NET Single Project.

Zie OneDotNetSingleProject voor meer informatie.

ArchiveBasePath

De locatie waar archieven worden opgeslagen in Windows voor een externe build.

De standaardwaarde is: %LocalAppData%\Xamarin\iOS\Archives

Alleen van toepassing op iOS-projecten (omdat alleen iOS-projecten extern kunnen worden gebouwd vanuit Windows).

ArchiveOnBuild

Als er een Xcode-archief moet worden gemaakt aan het einde van de build.

BGenEmitDebugInformation

Of het hulpprogramma bgen (de bindinggenerator) foutopsporingsgegevens moet verzenden of niet.

Het standaardgedrag wordt true wanneer de eigenschap Debug is ingesteld op true.

BGenExtraArgs

Eventuele extra argumenten voor het hulpprogramma bgen (de bindinggenerator).

BGenToolExe

De naam van het uitvoerbare bgen (een hulpprogramma dat wordt gebruikt door bindingsprojecten om bindingen te genereren).

Het standaardgedrag is het gebruik van het bgen hulpprogramma dat bij onze workload wordt geleverd.

BGenToolPath

De map waar de bgen (BGenToolExe) zich bevindt.

Het standaardgedrag is het gebruik van het bgen hulpprogramma dat bij onze workload wordt geleverd.

BuildIpa

Als er een pakket (.ipa) moet worden gemaakt voor de app-bundel aan het einde van de build.

Alleen van toepassing op iOS- en tvOS-projecten.

Zie CreatePackage- voor macOS- en Mac Catalyst-projecten.

BundleCreateDump

CoreCLR heeft een commandoregelprogramma met de naam createdump om kerndumps te maken als het proces vastloopt. macOS maakt automatisch crashrapporten voor alle App Store-apps en stelt deze beschikbaar voor de app-ontwikkelaar, dus het createdump hulpprogramma is niet nuttig voor veel macOS-apps en is daarom niet standaard opgenomen in apps.

Dit kan worden overschreven door de eigenschap BundleCreateDump in te stellen.

<PropertyGroup>
  <BundleCreateDump>true</BundleCreateDump>
</PropertyGroup>

Opmerking: het createdump hulpprogramma werkt momenteel niet voor sandbox-apps (#18961);

Alleen van toepassing op projecten die gebruikmaken van de CoreCLR-runtime (die op het moment van schrijven alleen macOS-projecten is).

BundleOriginalResources

Met deze eigenschap wordt bepaald of resources worden gecompileerd voordat ze worden ingesloten in bibliotheekprojecten of of de oorspronkelijke (niet-gecompileerde) versie is ingesloten.

In het verleden zijn resources gecompileerd voordat ze worden ingesloten in bibliotheekprojecten, maar hiervoor is Xcode beschikbaar, wat enkele nadelen heeft:

  • Het vertraagt externe builds op Windows.
  • Het werkt niet bij lokaal bouwen op Windows, en ook niet op een ander platform, behalve op macOS.
  • Resources worden gecompileerd met behulp van de huidige beschikbare Xcode, die mogelijk niet dezelfde functies heeft als een mogelijk nieuwere Xcode die beschikbaar is wanneer de betreffende bibliotheek wordt gebruikt.
  • Het maakt het onmogelijk om een volledig programma te hebben van alle resources bij het bouwen van een app, wat nodig is om conflicterende resources te detecteren.

Daarom hebben we ondersteuning toegevoegd voor het insluiten van de oorspronkelijke resources in bibliotheken. Dit zal een keuze-in optie zijn bij .NET 9, maar een opt-out vanaf .NET 10.

De standaardwaarde van deze eigenschap false in .NET 9 en true in .NET 10+.

Notitie

Dien een probleem in als u merkt dat u deze functie moet uitschakelen, omdat het mogelijk is dat de optie om deze uit te schakelen in de toekomst wordt verwijderd.

CodesignToewijzen

Het pad naar het hulpprogramma codesign_allocate.

Deze waarde wordt standaard automatisch gedetecteerd.

CodesignConfigureDependsOn

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan doelen aan deze eigenschap toevoegen om deze doelen uit te voeren voordat de build naar een van de eigenschappen van codesigning kijkt.

Dit kan bijvoorbeeld worden gebruikt om ondertekening van code uit te schakelen voor simulator-builds:

<PropertyGroup>
  <CodesignConfigureDependsOn>$(CodesignConfigureDependsOn);DisableCodesignInSimulator</CodesignConfigureDependsOn>
</PropertyGroup>
<Target Name="DisableCodesignInSimulator" Condition="'$(SdkIsSimulator)' == 'true'">
  <PropertyGroup>
    <EnableCodeSigning>false</EnableCodeSigning>
  </PropertyGroup>
</Target>

SamenOntwerpenIsAfhankelijkVan

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan doelen aan deze eigenschap toevoegen om deze doelen uit te voeren voordat de app-bundel wordt ondertekend.

Voorbeeld:

<PropertyGroup>
  <CodesignDependsOn>$(CodesignDependsOn);DoThisBeforeCodesign</CodesignDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCodesign">
  <Exec Command="echo This is executed right before the app is signed." />
</Target>

CodesignEntitlements

Het pad naar het rechtenbestand dat de rechten aangeeft die de app nodig heeft.

Meestal 'Entitlements.plist'.

Dit wordt automatisch ingesteld op 'Entitlements.plist' als een dergelijk bestand bestaat in de hoofdmap van het project.

Dit kan worden voorkomen door de eigenschap EnableDefaultCodesignEntitlements in te stellen op false.

CodesignExtraArgs

Extra argumenten die worden doorgegeven aan het hulpprogramma 'codesign' bij het ondertekenen van de app-bundel.

CodesignKey

Hiermee geeft u de codeondertekeningssleutel op die moet worden gebruikt bij het ondertekenen van de app-bundel.

CodesignKeychain

De sleutelhanger die moet worden gebruikt tijdens het ondertekenen van code.

CodeSigningKey (codesleutel voor ondertekening)

Hiermee geeft u de codeondertekeningssleutel op die moet worden gebruikt bij het ondertekenen van de app-bundel.

Alleen van toepassing op macOS- en Mac Catalyst-apps, maar het is raadzaam om in plaats daarvan de eigenschap CodesignKey te gebruiken (die op alle platforms werkt).

CodesignProvision

Hiermee geeft u het inrichtingsprofiel op dat moet worden gebruikt bij het ondertekenen van de app-bundel.

CodesignResourceRules

Het pad naar ResourceRules.plist om naar de app-bundel te kopiëren.

CodesignRequireProvisioningProfile

Hiermee geeft u op of een provisioning-profiel vereist is bij het ondertekenen van de app-bundel.

Standaard geldt dat een inrichtingsprofiel vereist is als:

  • macOS, Mac Catalyst: er is een inrichtingsprofiel opgegeven (met de eigenschap CodesignProvision).
  • iOS, tvOS: gebouw voor apparaat of rechtenbestand is opgegeven (met de eigenschap CodesignEntitlements ).

Als u deze eigenschap instelt op true of false, wordt de standaardlogica overschreven.

ComprimeerBindingsResourcePakket

De systeemeigen verwijzingen in een bindingsprojecten worden tijdens het buildproces gekopieerd naar de uitvoermap, naast de bindingsassembly (in iets wat we een bindingsresourcepakket noemen).

Deze systeemeigen verwijzingen kunnen worden opgeslagen in een zip-bestand (genaamd $(AssemblyName).resources.zip, of as-is, in een map met de naam $(AssemblyName).resources.

De CompressBindingResourcePackage eigenschap geeft aan of een zip-bestand of map moet worden gemaakt.

Mogelijke waarden zijn:

  • auto: bepaal automatisch de beste optie (momenteel wordt er altijd een zip-bestand gemaakt, maar zodra Visual Studio lange paden in Windows ondersteunt, kan dit worden gewijzigd in alleen zip-bindingsresourcepakketten met symlinks).
  • true: een ZIP-bestand maken
  • false: een map maken

De standaardwaarde is auto.

Dit geldt ook voor de wijze waarop systeemeigen verwijzingen worden opgeslagen in NuGets.

Notitie

In sommige gevallen kan het nuttig zijn om ook een zip-bestand op iOS af te dwingen, vooral wanneer er een framework is met bestanden met lange namen, omdat het zip-bestand soms MAX_PATH problemen in Windows kan omzeilen.

CopySceneKitAssetsPath

Het volledige pad naar het hulpprogramma copySceneKitAssets.

Het standaardgedrag is om xcrun copySceneKitAssetste gebruiken.

CoreMLCompilerPath

Het volledige pad naar het hulpprogramma coremlc.

Het standaardgedrag is om xcrun coremlcte gebruiken.

MakenAppBundelHangtAfVan

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan alle doelen aan deze eigenschap toevoegen om deze doelen uit te voeren bij het maken van de app-bundel.

Voorbeeld:

<PropertyGroup>
  <CreateAppBundleDependsOn>$(CreateAppBundleDependsOn);DoThisBeforeCreatingAppBundle</CreateAppBundleDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingAppBundle">
  <Exec Command="echo This is executed before the app bundle is created." />
</Target>

CreateIpaDependsOn

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan doelen aan deze eigenschap toevoegen om deze doelen uit te voeren bij het maken van een IPA.

Van toepassing op alle platforms die IPA-archieven bouwen (momenteel iOS en tvOS).

Voorbeeld:

<PropertyGroup>
  <CreateIpaDependsOn>$(CreateIpaDependsOn);DoThisBeforeCreatingIPA</CreateIpaDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingIPA">
  <Exec Command="echo This is executed before the IPA is created." />
</Target>

PakketAanmaken

Aan het eind van de build, als er een pakket (.pkg) moet worden gemaakt voor de app-bundel.

Alleen van toepassing op macOS- en Mac Catalyst-projecten.

Zie BuildIpa- voor iOS- en tvOS-projecten.

ApparaatspecifiekeBouw

Als de build specifiek moet zijn voor het geselecteerde apparaat.

Van toepassing op alle platforms die apparaatspecifieke builds ondersteunen (momenteel iOS en tvOS).

DeviceSpecifiekTussentijdsUitvoerPad

Het tussenliggende uitvoerpad dat moet worden gebruikt wanneer apparaatspecifieke builds zijn ingeschakeld.

Van toepassing op alle platforms die apparaatspecifieke builds ondersteunen (momenteel iOS en tvOS).

ApparaatspecifiekUitvoepad

Het uitvoerpad dat moet worden gebruikt wanneer apparaatspecifieke builds zijn ingeschakeld.

Van toepassing op alle platforms die apparaatspecifieke builds ondersteunen (momenteel iOS en tvOS).

DiagnosticAddress

Het IP-adres waar dotnet-dsrouter wordt uitgevoerd. Dit is gebruikelijk 127.0.0.1 wanneer profilering op de simulator plaatsvindt en wanneer het IP-adres van de computer dotnet-dsrouter wanneer profilering op een apparaat plaatsvindt.

Dit is het IP-adresonderdeel van DiagnosticConfiguration.'

Hiermee stelt EnableDiagnostics impliciet in op true.

Standaardwaarde is 127.0.0.1.

Diagnostische configuratie

Een waarde die is opgegeven voor dotnet-dsrouterDOTNET_DiagnosticPorts bijvoorbeeld:

  • 127.0.0.1:9000,suspend,connect
  • 127.0.0.1:9000,nosuspend,connect

Houd er rekening mee dat het ,-teken moet worden geëscaped met %2c als het via de opdrachtregel aan dotnet build wordt doorgegeven.

dotnet build -c Release -p:DiagnosticConfiguration=127.0.0.1:9000%2csuspend%2cconnect

Hiermee wordt automatisch de DOTNET_DiagnosticPorts omgevingsvariabele ingesteld die in de toepassing is verpakt, zodat de omgevingsvariabele wordt ingesteld wanneer de app wordt gestart.

Hiermee stelt EnableDiagnostics impliciet in op true.

Het standaardgedrag is om deze waarde te berekenen op basis van de andere diagnostische eigenschappen (DiagnosticAddress, DiagnosticPort, DiagnosticListenMode en DiagnosticSuspend).

Als deze optie is ingesteld, worden alle andere diagnostische eigenschappen genegeerd.

DiagnosticListenMode

Een waarde die door dotnet-dsrouter wordt geleverd, zoals connect of listen, het 'listening mode'-component van DiagnosticConfiguration.

Hiermee stelt EnableDiagnostics impliciet in op true.

Standaardwaarde is listen.

DiagnosticPort

Een waarde die wordt geleverd door dotnet-dsrouter bijvoorbeeld 9000het poortonderdeel DiagnosticConfiguration'.

Hiermee stelt EnableDiagnostics impliciet in op true.

Standaardwaarde is 9000.

DiagnosticSuspend

Een waarde die het opstartgedrag aangeeft bij het profileren van een toepassing.

Instellen dat true de app tijdens het opstarten wordt onderbroken (wacht totdat de diagnostische server verbinding maakt met de app) of false om de app zoals gebruikelijk te starten (en de diagnostische server later met de app te verbinden).

Dit komt overeen met de suspend/nosuspend waarde in DiagnosticConfiguration.'

Hiermee stelt EnableDiagnostics impliciet in op true.

Standaardwaarde is false.

DittoPath

Het volledige pad naar het uitvoerbare bestand ditto.

Het standaardgedrag is om /usr/bin/dittote gebruiken.

EmbedOnDemandResources

Als middelen op aanvraag in de app-bundel moeten worden ingesloten.

Standaard: waar

OndertekenCodeInschakelen

Als ondertekening van code is ingeschakeld.

Ondertekening van code is standaard ingeschakeld voor alle platforms; dit kan worden overschreven met deze eigenschap.

EnableDefaultCodesignEntitlements

Zie CodesignEntitlements.

InschakelenVanResourcesOpAanvraag

Als on-demand resources zijn ingeschakeld.

Standaard: onwaar voor macOS, waar voor alle andere platforms.

PakketondertekeningInschakelen

Als de .pkg die is gemaakt (als CreatePackage is ingeschakeld) moet worden ondertekend.

Alleen van toepassing op macOS en Mac Catalyst.

DiagnostiekInschakelen

Schakel de onderdelen in die nodig zijn voor diagnostische functies, zoals profilering.

Deze functie is standaard ingeschakeld voor foutopsporingsversies (wanneer MtouchDebug of MmpDebug is ingeschakeld), maar moet handmatig worden ingeschakeld voordat de builds van de profileringsrelease worden geprofileerd:

<PropertyGroup>
  <EnableDiagnostics>true</EnableDiagnostics>
</PropertyGroup>

Hierdoor wordt de app enigszins groter.

Alleen van toepassing bij het gebruik van de Mono-runtime (CoreCLR ondersteunt altijd diagnostische gegevens, terwijl NativeAOT nooit doet).

EnableSGenConc

Hiermee schakelt u de gelijktijdige modus voor de SGen garbage collector in.

Alleen van toepassing op iOS, tvOS en Mac Catalyst (wanneer u Geen NativeAOT gebruikt).

EventSourceSupport

Wanneer ingesteld op false, schakelt dit de .NET EventSource-ondersteuning uit in getrimde applicaties. Als u deze functie uitschakelt, voorkomt u dat .NET-diagnostische hulpprogramma's zoals dotnet-counters werken, maar dat resulteert wel in een kleinere toepassingsgrootte.

Standaard: ingesteld op false wanneer Optimize is ingesteld op true, wat de standaard is voor Release builds, tenzij $(EnableDiagnostics) is ingeschakeld.

GenereerApplicatieManifest

Als er een toepassingsmanifest (Info.plist) moet worden gegenereerd.

Standaard: waar

GeneratedSourcesDir

Waar de gegenereerde bronnen van de generator worden opgeslagen.

InclusiefAlleAppIconen

Stel de eigenschap IncludeAllAppIcons in op True om automatisch alle app-pictogrammen uit alle assetcatalogussen in de app op te nemen.

Voorbeeld:

<PropertyGroup>
    <IncludeAllAppIcons>true</IncludeAllAppIcons>
</PropertyGroup>

Zie ook:

Minimale iOS Versie

Hiermee geeft u de minimale iOS-versie op waarop de app kan worden uitgevoerd.

Van toepassing op iOS; als u deze waarde instelt, wordt SupportedOSPlatformVersion voor iOS-projecten (alleen) ingesteld.

IPhoneResourcePrefix

De map waarin resources worden opgeslagen (dit voorvoegsel wordt verwijderd bij het kopiëren van resources naar de app-bundel).

Van toepassing op iOS-, tvOS- en Mac Catalyst-projecten.

Overweeg in plaats daarvan de geïntegreerde eigenschap AppBundleResourcePrefix te gebruiken.

Zie ook MonoMacResourcePrefix en XamMacResourcePrefix.

IpaIncludeArtwork

Als kunstwerken zouden moeten worden opgenomen in de IPA.

Alleen van toepassing op iOS- en tvOS-projecten.

IpaPackageName

Hiermee geeft u de naam van het resulterende IPA-bestand (zonder het pad) bij het maken van een IPA-pakket (zie BuildIpa). IpaPackagePath deze waarde overschrijft.

Alleen van toepassing op iOS- en tvOS-projecten.

IpaPackageDir

Hiermee geeft u de map van het resulterende IPA-bestand bij het maken van een IPA-pakket (zie BuildIpa-). IpaPackagePath deze waarde overschrijft.

Alleen van toepassing op iOS- en tvOS-projecten.

IpaPackagePath

Hiermee geeft u het pad naar het resulterende IPA-bestand bij het maken van een IPA-pakket (zie BuildIpa-).

Alleen van toepassing op iOS- en tvOS-projecten.

IsAppExtension

Als een project een app-extensie is.

IsBindingProject

Als een project een bindingsproject is.

IsXPCService

Als een macOS-extensie een xpc-service is.

Alleen van toepassing op macOS-projecten.

Koppelingsmodus

Hiermee geeft u de koppelingsmodus voor het project (None, SdkOnly of Full).

Deze eigenschap is van toepassing op macOS-projecten, maar deze eigenschap is afgeschaft, gebruikt in plaats daarvan TrimMode.

Zie ook MtouchLink.

Koppel met Swift-systeem bibliotheken

Als deze optie is ingesteld op true, vertelt de build de systeemeigen linker waar de systeembibliotheken van Swift te vinden zijn.

Dit is handig wanneer een systeemeigen bibliotheek swift gebruikt, in welk geval de systeemeigen linker moet weten waar de systeembibliotheken van Swift moeten worden gevonden.

Dit betekent momenteel dat deze argumenten worden doorgegeven aan de native linker.

  • -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/[platform]
  • -L/Applications/Xcode.app/Contents/Developer/Platforms/[platform].platform/Developer/SDK/[platform].sdk/usr/lib/swift

De exacte set argumenten kan in de toekomst veranderen.

MacCatalystMinimaleVersie

Hiermee geeft u de minimale Versie van Mac Catalyst (iOS) op waarop de app kan worden uitgevoerd.

Van toepassing op Mac Catalyst; als u deze waarde instelt, wordt SupportedOSPlatformVersion voor Mac Catalyst-projecten (alleen) ingesteld.

MaciOSPrepareForBuildDependsOn

Een door puntkomma's gescheiden eigenschap die kan worden gebruikt om het buildproces uit te breiden. MSBuild-doelen die aan deze eigenschap worden toegevoegd, worden vroeg in de build uitgevoerd voor zowel toepassings- als bibliotheekprojecttypen. Deze eigenschap is standaard leeg.

Voorbeeld:

<PropertyGroup>
  <MaciOSPrepareForBuildDependsOn>$(MaciOSPrepareForBuildDependsOn);MyCustomTarget</MaciOSPrepareForBuildDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

Deze eigenschap is geïntroduceerd in .NET 9.

macOSMinimumVersion

Hiermee geeft u de minimale macOS-versie op waarop de app kan worden uitgevoerd.

Van toepassing op macOS; als u deze waarde instelt, wordt SupportedOSPlatformVersion- ingesteld voor macOS-projecten (alleen).

MacOSXSdkVersion

De macOS SDK-versie die moet worden gebruikt voor de build.

Standaard: automatisch gedetecteerd volgens de standaardversie die is verzonden met de geselecteerde Xcode.

Zie ook MtouchSdkVersion.

MarshalManagedExceptionMode

Kies hoe beheerde uitzonderingen worden verwerkt bij het tegenkomen van een systeemeigen frame tijdens het afwikkelen van de stack tijdens het verwerken van de beheerde uitzondering.

Geldige waarden:

  • default: Momenteel is dit throwobjectivecexception.
  • unwindnativecode: dit is niet beschikbaar wanneer u de CoreCLR-runtime gebruikt.
  • throwobjectivecexception: Vang de beheerde uitzondering op en zet deze om in een Objective-C-uitzondering.
  • abort: Het proces afbreken.
  • disable: Schakel het onderscheppen van eventuele beheerde uitzonderingen uit. Voor MonoVM is dit gelijk aan unwindnativecode, voor CoreCLR is dit gelijk aan abort.

Zie Exception marshaling en MarshalObjectiveCExceptionMode voor meer informatie.

MarshalObjectiveCExceptionMode

Kies hoe Objective-C-uitzonderingen worden verwerkt wanneer er een beheerd frame wordt aangetroffen tijdens de stapelafwikkeling bij de verwerking van de Objective-C-uitzondering.

Geldige waarden:

  • default: Momenteel is dit throwmanagedexception.
  • unwindmanagedcode: dit is niet beschikbaar wanneer u de CoreCLR-runtime gebruikt.
  • throwmanagedexception: De Objective-C uitzondering ondervangen en deze converteren naar een beheerde uitzondering.
  • abort: Het proces afbreken.
  • disable: Schakel het onderscheppen van eventuele Objective-C uitzonderingen uit.

Zie Exception marshaling en MarshalManagedExceptionMode voor meer informatie.

MdimportPath

Het volledige pad naar het hulpprogramma mdimport.

Het standaardgedrag is om xcrun mdimportte gebruiken.

MetalLibPath

Het volledige pad naar het metallib gereedschap (de Metal Linker).

Het standaardgedrag is om xcrun metallibte gebruiken.

MetalPath

Het volledige pad naar de Metal-compiler.

Het standaardgedrag is om xcrun metalte gebruiken.

MetricsSupport

Als deze is ingesteld op false, schakelt het de ondersteuning van .NET Metrics uit voor bijgesneden toepassingen. Als u deze functie uitschakelt, zouden API's zoals System.Diagnostics.Metrics niet meer functioneren, maar dit heeft als voordeel dat de toepassingsgrootte afneemt.

Standaard: ingesteld op false wanneer Optimize is ingesteld op true, wat de standaard is voor Release builds, tenzij $(EnableDiagnostics) is ingeschakeld.

MmpDebug

Hiermee schakelt u de foutopsporingsmodus in voor het maken van app-bundels.

Alleen van toepassing op macOS-projecten.

Zie ook MtouchDebug.

AgressieveAttribuutTrimmenOpMobiel

Deze eigenschap bepaalt of talloze kenmerken die tijdens runtime zeer zelden nodig zijn, moeten worden afgekapt.

Dit is standaard ingeschakeld.

Hoewel de kenmerken die worden verwijderd zeer zelden worden gebruikt, is het technisch mogelijk dat de verwijdering runtimegedrag kan wijzigen.

System.Xml.Serialization werkt bijvoorbeeld anders als een constructor het [Obsolete] kenmerk heeft (een van de kenmerken die worden verwijderd). Dit is weinig risico om te rechtvaardigen dat deze kenmerken standaard worden verwijderd vanwege de besparingen op de grootte.

De lijst met kenmerken die worden verwijderd, kan in de toekomst veranderen, maar op het moment van schrijven (voor .NET 10) zijn dit de kenmerken:

  • Microsoft.CodeAnalysis.EmbeddedAttribute
  • System.CLSCompliantAttribute
  • System.CodeDom.Compiler.GeneratedCodeAttribute
  • System.ComponentModel.EditorBrowsableAttribute
  • System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute
  • System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute
  • System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute
  • System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
  • System.Diagnostics.CodeAnalysis.ExperimentalAttribute
  • System.Diagnostics.CodeAnalysis.FeatureGuardAttribute
  • System.Diagnostics.CodeAnalysis.FeatureSwitchDefinitionAttribute
  • System.Diagnostics.CodeAnalysis.MemberNotNullAttribute
  • System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute
  • System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute
  • System.Diagnostics.CodeAnalysis.NotNullWhenAttribute
  • System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute
  • System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute
  • System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute
  • System.Diagnostics.CodeAnalysis.StringSyntaxAttribute
  • System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
  • System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute
  • System.Diagnostics.CodeAnalysis.UnscopedRefAttribute
  • System.ObsoleteAttribute
  • System.Reflection.AssemblyCompanyAttribute
  • System.Reflection.AssemblyConfigurationAttribute
  • System.Reflection.AssemblyCopyrightAttribute
  • System.Reflection.AssemblyDefaultAliasAttribute
  • System.Reflection.AssemblyDescriptionAttribute
  • System.Reflection.AssemblyMetadataAttribute
  • System.Reflection.AssemblyProductAttribute
  • System.Reflection.AssemblyTitleAttribute
  • System.Runtime.CompilerServices.AsyncMethodBuilderAttribute
  • System.Runtime.CompilerServices.CallerArgumentExpressionAttribute
  • System.Runtime.CompilerServices.CallerFilePathAttribute
  • System.Runtime.CompilerServices.CallerLineNumberAttribute
  • System.Runtime.CompilerServices.CallerMemberNameAttribute
  • System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute
  • System.Runtime.CompilerServices.CompilerGlobalScopeAttribute
  • System.Runtime.CompilerServices.EnumeratorCancellationAttribute
  • System.Runtime.CompilerServices.ExtensionAttribute
  • System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute
  • System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute
  • System.Runtime.CompilerServices.IntrinsicAttribute
  • System.Runtime.CompilerServices.IsReadOnlyAttribute
  • System.Runtime.CompilerServices.IsUnmanagedAttribute
  • System.Runtime.CompilerServices.NativeIntegerAttribute
  • System.Runtime.CompilerServices.RefSafetyRulesAttribute
  • System.Runtime.CompilerServices.ScopedRefAttribute
  • System.Runtime.CompilerServices.SkipLocalsInitAttribute
  • System.Runtime.CompilerServices.TupleElementNamesAttribute
  • System.Runtime.InteropServices.LibraryImportAttribute
  • System.Runtime.InteropServices.Marshalling.ContiguousCollectionMarshallerAttribute
  • System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute
  • System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute
  • System.Runtime.InteropServices.Marshalling.NativeMarshallingAttribute
  • System.Runtime.Versioning.NonVersionableAttribute
  • System.Runtime.Versioning.ObsoletedOSPlatformAttribute
  • System.Runtime.Versioning.RequiresPreviewFeaturesAttribute
  • System.Runtime.Versioning.SupportedOSPlatformAttribute
  • System.Runtime.Versioning.SupportedOSPlatformGuardAttribute
  • System.Runtime.Versioning.TargetPlatformAttribute
  • System.Runtime.Versioning.UnsupportedOSPlatformAttribute
  • System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute

Deze eigenschap is geïntroduceerd in .NET 10.

MonoBundlingExtraArgs

Aanvullende argumenten die aangeven hoe de app-bundel moet worden gemaakt.

Alleen van toepassing op macOS-projecten.

Deze eigenschap is afgeschaft en gebruikt in plaats daarvan AppBundleExtraOptions-.

MonoMacResourcePrefix

De map waarin resources worden opgeslagen (dit voorvoegsel wordt verwijderd bij het kopiëren van resources naar de app-bundel).

Alleen van toepassing op macOS-projecten.

Overweeg in plaats daarvan de geïntegreerde eigenschap AppBundleResourcePrefix te gebruiken.

Zie ook IPhoneResourcePrefix en XamMacResourcePrefix.

MonoUseCompressedInterfaceBitmap

Hiermee wordt de Mono-runtime geïnstrueerd om een gecomprimeerde versie van interface-bitmaps te gebruiken (interface-bitmaps worden gebruikt om te bepalen of een bepaald type een gegeven interface implementeert).

Deze bitmaps kunnen tijdens runtime een aanzienlijke hoeveelheid geheugen gebruiken, met name voor apps met een aanzienlijke hoeveelheid interfaces.

Deze instelling is standaard uitgeschakeld, maar kan als volgt worden ingeschakeld, waardoor de hoeveelheid geheugen die tijdens runtime wordt gebruikt, wordt verminderd:

<PropertyGroup>
    <MonoUseCompressedInterfaceBitmap>true</MonoUseCompressedInterfaceBitmap>
</PropertyGroup>

Het nadeel is dat typecontroles (obj is SomeInterface) langzamer zijn.

Alleen van toepassing bij het gebruik van de Mono-runtime.

MtouchDebug

Hiermee schakelt u de foutopsporingsmodus in voor het maken van app-bundels.

Van toepassing op iOS-, tvOS- en Mac Catalyst-projecten.

Zie ook MmpDebug.

MtouchEnableSGenConc

Hiermee schakelt u de gelijktijdige modus voor de SGen garbage collector in.

Alleen van toepassing op iOS, tvOS en Mac Catalyst wanneer u NativeAOT niet gebruikt.

Deze eigenschap is afgeschaft. Gebruik in plaats daarvan EnableSGenConc-.

MtouchExtraArgs

Aanvullende argumenten die aangeven hoe de app-bundel moet worden gemaakt.

Alleen van toepassing op iOS-, tvOS- en Mac Catalyst-projecten.

Deze eigenschap is afgeschaft en gebruikt in plaats daarvan AppBundleExtraOptions-.

MtouchInterpreter

Hiermee wordt de interpreter ingeschakeld, en kan optioneel een door komma's gescheiden lijst met assembly's worden gegeven om te interpreteren (als voorafgegaan door een minteken, zal de assembly in plaats daarvan worden gecompileerd met AOT). 'all' kan worden gebruikt om alle assembly's op te geven. Dit argument kan meerdere keren worden opgegeven.

Voorbeeld:

<PropertyGroup>
  <!-- interpret all assemblies -->
  <MtouchInterpreter>all</MtouchInterpreter>

  <!-- AOT-compile all assemblies, except System.dll, which will be interpreted. -->
  <MtouchInterpreter>System</MtouchInterpreter>

  <!-- interpret all assemblies, except System.Core.dll, which will be AOT-compiled. -->
  <MtouchInterpreter>all,-System.Core</MtouchInterpreter>
</PropertyGroup>

Een verkorte schrijfwijze voor de MtouchInterpreter is UseInterpreter=truete zetten, dat overeenkomt met MtouchInterpreter=all.

Als zowel UseInterpreter als MtouchInterpreter zijn ingesteld, heeft MtouchInterpreter voorrang.

Van toepassing op iOS-, tvOS- en Mac Catalyst-apps (wanneer u Geen NativeAOT gebruikt).

Het standaardgedrag is om de interpreter niet in te schakelen.

Notitie

MAUI wijzigt de standaardinstelling door UseInterpreter=true in te stellen voor de "Debug"-configuratie.

Hiermee geeft u de koppelingsmodus voor het project (None, SdkOnly, Full).

Van toepassing op iOS-, tvOS- en Mac Catalyst-projecten, maar deze eigenschap is afgeschaft, gebruik in plaats daarvan TrimMode.

Zie ook LinkMode.

MtouchSdkVersion

De iOS- of tvOS SDK-versie die moet worden gebruikt voor de build.

Standaard: automatisch gedetecteerd volgens de standaardversie die is verzonden met de geselecteerde Xcode.

Zie ook MacOSXSdkVersion.

MtouchUseLlvm

Een booleaanse eigenschap die aangeeft of de AOT-compilatie moet worden uitgevoerd met behulp van LLVM.

Van toepassing op iOS-, tvOS- en Mac Catalyst-projecten.

Verstek:

  • Op iOS en tvOS: ingeschakeld voor release-builds (waarbij Configuration="Release").
  • Op Mac Catalyst: nooit standaard ingeschakeld.

NoBindingEmbedding

Een booleaanse eigenschap die aangeeft of systeemeigen bibliotheken in bindingsprojecten moeten worden ingesloten in de beheerde assembly of in een .resources map naast de beheerde assembly moeten worden geplaatst.

De standaardwaarde is true (wat betekent dat systeemeigen bibliotheken niet worden ingesloten in de beheerde assembly).

Notitie

Xcframeworks werkt niet goed als deze is ingesloten in de beheerde assembly (als deze eigenschap niet is true).

NoDSymUtil

Een booleaanse eigenschap die aangeeft of .dSYM-generatie moet worden uitgeschakeld.

Verstek:

  • true voor iOS en tvOS bij het bouwen voor de simulator.
  • true voor macOS en Mac Catalyst, tenzij u een archief maakt (ArchiveOnBuild=true)

Dit betekent dat het .dSYM-archief wordt gegenereerd in de volgende gevallen (standaard):

  • Op iOS en tvOS bij het bouwen voor apparaten.
  • Op macOS en Mac Catalyst bij het maken van een archief (ArchiveOnBuild=true).

NoSymbolStrip

Een booleaanse eigenschap die aangeeft of foutopsporingssymbolen tijdens de build worden verwijderd uit de app.

Het standaardgedrag is het behouden van foutopsporingssymbolen voor:

  • Debug bouwt voor desktopplatforms.
  • Simulator bouwt voor mobiele platforms.

Voorbeeld voor het behouden van foutopsporingssymbolen:

<PropertyGroup>
  <NoSymbolStrip>true</NoSymbolStrip>
</PropertyGroup>

OnDemandResourcesInitialInstallTags

Een tekenreekseigenschap die de aanvankelijke installatietags voor on-demand resources aangeeft.

Voorkeursvolgorde voor OnDemand Resources

Een tekenreekseigenschap die de prefetch-volgorde voor on-demand resources aangeeft.

OnDemandResourcesUrl

Een string-eigenschap die de resource-URL van on-demand resources opgeeft.

OptimaliseerPNGs

Een booleaanse eigenschap die aangeeft of png-afbeeldingen moeten worden geoptimaliseerd.

(No improvements needed if the term is confirmed as a proper noun or technical term that must remain in English.)

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan doelen aan deze eigenschap toevoegen om deze doelen uit te voeren voordat png-afbeeldingen worden geoptimaliseerd.

Voorbeeld:

<PropertyGroup>
  <OptimizePngImagesDependsOn>$(OptimizePngImagesDependsOn);MyCustomTarget</OptimizePngImagesDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

OptimizePropertyLists

Een booleaanse eigenschap die aangeeft of eigenschappenlijsten (plists) moeten worden geoptimaliseerd.

OptimaliseerEigenschapslijstenAfhankelijkVan

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan doelen aan deze eigenschap toevoegen om deze doelen uit te voeren voordat een eigenschappenlijst (plists) wordt geoptimaliseerd.

Voorbeeld:

<PropertyGroup>
  <OptimizePropertyListsDependsOn>$(OptimizePropertyListsDependsOn);MyCustomTarget</OptimizePropertyListsDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

PakketOndertekeningsSleutel

Hiermee specificeert u de codesleutel voor het ondertekenen van het pakket bij het maken van een .pkg voor een macOS- en Mac Catalyst-project.

Alleen van toepassing op macOS- en Mac Catalyst-apps.

PackagingExtraArgs

Hiermee geeft u eventuele extra argumenten die moeten worden doorgegeven aan het hulpprogramma 'productbuild' bij het maken van .pkg voor een macOS- en Mac Catalyst-project.

Alleen van toepassing op macOS- en Mac Catalyst-apps.

PkgPackagePath

Hiermee geeft u het pad naar het resulterende .pkg bestand bij het maken van een pakket (zie CreatePackage).

Alleen van toepassing op macOS- en Mac Catalyst-apps.

PlutilPath

Het volledige pad naar het opdrachtregelprogramma plutil.

Het standaardgedrag is om xcrun plutilte gebruiken.

PngCrushPath

Het volledige pad naar het opdrachtregelprogramma pngcrush.

Het standaardgedrag is om xcrun pngcrushte gebruiken.

ProcessEnums

Een booleaanse eigenschap die aangeeft of opsommingen moeten worden verwerkt als api-definitie in bindingsprojecten.

ProductBuildPath

Het volledige pad naar het hulpprogramma productbuild.

Het standaardgedrag is om xcrun productbuildte gebruiken.

Productdefinitie

De productdefinitiesjabloon (.plist) die moet worden gebruikt bij het maken van de productdefinitie om door te geven aan het hulpprogramma voor productbuild bij het maken van pakketten (.pkg).

Alleen van toepassing op macOS- en Mac Catalyst-apps.

ReferenceNativeSymbol

De itemgroep ReferenceNativeSymbol kan worden gebruikt om op te geven hoe een bepaald systeemeigen symbool moet worden verwerkt: negeer het of vraag de systeemeigen linker om het te behouden (door het symbool als -u ... of in een symboolbestand door te geven aan de systeemeigen linker).

Er zijn twee ondersteunde typen metagegevens:

  • SymbolType: ObjectiveCClass, Function of Field. Wordt gebruikt om de volledige systeemeigen naam van een symbool te berekenen (bijvoorbeeld het systeemeigen symbool voor de Objective-C klasse MyClass is _OBJC_CLASS_$_MyClass, terwijl voor een functie MyFunction het slechts _MyFunction.
  • SymbolMode: Ignore of niet ingesteld. Ignore betekent dat het opgegeven symbool niet aan de systeemeigen linker moet worden doorgegeven; de standaardinstelling is om dit wel te doen.

SymbolType is vereist, terwijl SymbolMode dat niet is.

Voorbeeldsymbool dat u wilt behouden:

<ItemGroup>
    <ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" />
</ItemGroup>

Voorbeeldsymbool dat moet worden genegeerd:

<ItemGroup>
    <ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" SymbolMode="Ignore" />
</ItemGroup>

VereisKoppelingMetAttribuutVoorObjectiveCKlassenZoekopdracht

We scannen automatisch alle bibliotheken voor beheerde klassen die zijn toegewezen aan bestaande Objective-C klassen en maken vervolgens een systeemeigen verwijzing tijdens de build voor die Objective-C klassen.

Op deze manier verwijdert de systeemeigen linker deze Objective-C klassen niet, denkend dat ze niet worden gebruikt.

Dit kan echter een probleem veroorzaken als een beheerde klasse verwijst naar een Objective-C-klasse die niet bestaat. De juiste oplossing hiervoor is om dergelijke beheerde klassen uit de build te verwijderen, maar dit kan lastig zijn, met name als de beheerde klasse afkomstig is van een binaire verwijzing (zoals NuGet).

In deze gevallen is het mogelijk om de eigenschap RequireLinkWithAttributeForObjectiveCClassSearch in te stellen op true, zodat we alleen bibliotheken scannen met het kenmerk [LinkWith] voor Objective-C klassen:

<PropertyGroup>
  <RequireLinkWithAttributeForObjectiveCClassSearch>true</RequireLinkWithAttributeForObjectiveCClassSearch>
</PropertyGroup>

RunWithOpen

Met deze eigenschap wordt bepaald of apps worden gestart met behulp van de open opdracht in macOS of of het uitvoerbare bestand van de app rechtstreeks wordt uitgevoerd.

Dit geldt alleen voor macOS- en Mac Catalyst-apps.

De standaardwaarde is true. In deze modus wordt de app gestart door macOS als elke andere UI-toepassing, wordt elke stdout/stderr-uitvoer door macOS ingeslikt en wordt de opdracht voltooid zodra de dotnet run app is gestart.

Indien ingesteld op false, wordt alle stdout/stderr-uitvoer afgedrukt naar de huidige terminal en wordt de dotnet run-opdracht pas voltooid nadat de app is afgesloten.

De volgende eigenschappen kunnen worden gebruikt om het gedrag te configureren wanneer deze is ingesteld op true (d.w.z. met de open opdracht):

OpenNewInstance

Als er een nieuw exemplaar wordt geopend als de app al wordt uitgevoerd (standaard ingesteld op false).

Deze waarde wordt doorgegeven aan -n als open is ingesteld op true.

Voorbeeld:

$ dotnet run -p:OpenNewInstance=false

OpenWaitForExit

Als 'dotnet run' moet wachten totdat de app beëindigt (wordt standaard ingesteld op false).

Deze waarde wordt doorgegeven aan -W als open is ingesteld op true.

Voorbeeld:

$ dotnet run -p:OpenWaitForExit=true

OpenArgumenten

Deze eigenschap kan worden gebruikt om extra argumenten door te geven aan de open opdracht.

Voorbeeld (om omgevingsvariabelen in te stellen):

$ dotnet run -p:OpenArguments="--env VARIABLE1=VALUE1 --env VARIABLE2=value2"

Voorbeeld (om stdout en stderr om te leiden naar een bestand):

$ dotnet run -p:OpenArguments="--stdout /tmp/stdout.txt --stderr /tmp/stderr.txt"

Voer uit man open om een lijst weer te geven met alle opties open die worden geaccepteerd.

StandaardUitvoerPad

Deze eigenschap kan worden gebruikt om de stdout-uitvoer van de app om te leiden naar een bestand.

Voorbeeld van schrijven naar een bestand:

$ dotnet run -p:StandardOutputPath=stdout.txt

Voorbeeld van schrijven naar de huidige terminal:

$ dotnet run -p:StandardOutputPath=$(tty)
[... Console.WriteLine output from app ...]

Opmerking: dit kan ook worden bereikt door de eigenschap --stdout ... geven.

StandardErrorPath

Deze eigenschap kan worden gebruikt om de stderr-uitvoer van de app om te leiden naar een bestand.

Voorbeeld van schrijven naar een bestand:

$ dotnet run -p:StandardErrorPath=stderr.txt

Voorbeeld van schrijven naar de huidige terminal:

$ dotnet run -p:StandardErrorPath=$(tty)
[... Console.Error.WriteLine output from app ...]

Opmerking: dit kan ook worden bereikt door de eigenschap --stderr ... geven.

StandardInputPath

Deze eigenschap kan worden gebruikt om de stdin-invoer vanuit een bestand om te leiden naar de app.

Voorbeeld:

$ dotnet run -p:StandardInputPath=stdin.txt

Opmerking: dit kan ook worden bereikt door de eigenschap --stdin ... geven.

SdkIsSimulator

Deze eigenschap is een alleen-lezen eigenschap (het instellen ervan heeft geen effect) die aangeeft of we voor een simulator bouwen of niet.

Deze wordt alleen ingesteld nadat de import- en eigenschappen zijn geëvalueerd. Dit betekent dat de eigenschap niet is ingesteld tijdens het evalueren van de eigenschappen in het projectbestand, dus dit werkt niet :

<PropertyGroup>
  <EnableCodeSigning Condition="'$(SdkIsSimulator)' == 'true'">false</EnableCodeSigning>
</PropertyGroup>

Het volgende werkt echter:

<ItemGroup>
  <!-- item groups (and their conditions) are evaluated after properties have been evaluated -->
  <CustomEntitlements Condition="'$(SdkIsSimulator)' == 'true'" Include="com.apple.simulator-entitlement" Type="Boolean" Value="true" />
  <CodesignConfigureDependsOn>$(CodesignConfigureDependsOn);ConfigureSimulatorSigning</CodesignConfigureDependsOn>
</ItemGroup>
<!-- targets are executed after properties have been evaluated -->
<Target Name="ConfigureSimulatorSigning">
  <PropertyGroup>
    <EnableCodeSigning Condition="'$(SdkIsSimulator) == 'true'">false</EnableCodeSigning>
  </PropertyGroup>
</Target>

Opmerking: deze eigenschap is altijd false beschikbaar in macOS en Mac Catalyst.

StripPath

Het volledige pad naar het opdrachtregelprogramma strip.

Het standaardgedrag is om xcrun stripte gebruiken.

SupportedOSPlatformVersion

Hiermee geeft u de minimale versie van het besturingssysteem op waarop de app kan worden uitgevoerd.

Het is ook mogelijk om een platformspecifieke eigenschap te gebruiken:

TrimMode

Hiermee geeft u de granulariteit van het bijsnijden op.

De geldige opties zijn:

  • full: Trim elke samenstelling.
  • partial: Trim assembly's die hebben gekozen voor bijsnijden.
  • copy: Verwijder geen samenstellingen.

Zie TrimMode voor meer informatie over de eigenschap TrimMode.

Notitie

Om technische redenen moet de trimmer worden uitgevoerd voor alle iOS-, tvOS-, macOS- en Mac Catalyst-projecten, zelfs als er geen assembly's moeten worden ingekort. Om deze reden is het niet geldig om bijsnijden uit te schakelen door PublishTrimmed in te stellen op false - om bijsnijden wel uit te schakelen, stel je in plaats daarvan TrimMode=copy in (er wordt een buildfout gegenereerd als PublishTrimmed is ingesteld op false).

De eigenschap TrimMode is gelijk aan de bestaande MtouchLink- (voor iOS, tvOS en Mac Catalyst) en LinkMode (voor macOS), maar de geldige eigenschappenwaarden verschillen (ook al zijn de semantiek hetzelfde):

MtouchLink/LinkMode TrimMode
Vol vol
SdkOnly gedeeltelijk
Geen kopiëren

In de toekomst worden de eigenschappen MtouchLink en LinkMode afgeschaft. Gebruik in plaats daarvan TrimMode.

De standaard trimmodus is afhankelijk van talloze factoren en kan ook in de toekomst veranderen.

De huidige standaardwaarden (vanaf .NET 9) zijn:

  • iOS en iOS: partial bij het bouwen voor het apparaat, copy bij het bouwen voor de simulator.
  • macOS: altijd copy.
  • Mac Catalyst: partial bij het bouwen van de "Release"-configuratie, anders copy.

Uitzonderingen:

  • De standaardwaarde wordt altijd full bij het bouwen met NativeAOT.
  • MAUI wijzigt de standaardwaarde in copy bij het bouwen van de Debug-configuratie en wanneer de interpreter is ingeschakeld met behulp van UseInterpreter (wat MAUI ook standaard inschakelt bij het gebruik van de "Debug"-configuratie).

Notitie

De standaard trimmodus kan in de toekomst veranderen.

tvOSMinimumVersie

Hiermee geeft u de minimale tvOS-versie op waarop de app kan worden uitgevoerd.

Van toepassing op tvOS; als u deze waarde instelt, wordt SupportedOSPlatformVersion- ingesteld voor tvOS-projecten (alleen).

GebruikDynamischeDoelplatformVersie

Een booleaanse eigenschap die bepaalt of bibliotheekprojecten een zwevende doelplatformversie of de oudste beschikbare platformversie moeten gebruiken.

Bibliotheekprojecten zonder expliciete TargetPlatformVersion verwijzingsassembly's (vanaf .NET 10) gebruiken standaard de oudste beschikbare referentieassembly's voor de huidige .NET-versie. Dit zorgt voor maximale compatibiliteit en stelt bibliotheekcode in staat om te compileren op basis van het minimale API-oppervlak dat beschikbaar is voor het doelframework.

Dit standaardgedrag betekent echter dat bibliotheekprojecten anders worden gebouwd dan uitvoerbare projecten (die gebruikmaken van de nieuwste platformversie). Code die in een uitvoerbaar project werkt, kan niet worden gecompileerd wanneer deze wordt verplaatst naar een bibliotheekproject als er api's worden gebruikt die alleen beschikbaar zijn in nieuwere platformversies.

Als u deze eigenschap instelt om de automatische selectie van de oudste platformversie uit te true schakelen, kan het bibliotheekproject de standaardplatformversie (meest recente) gebruiken, zoals uitvoerbare projecten.

Voorbeeld:

<PropertyGroup>
  <!-- Use the latest platform version instead of the oldest -->
  <UseFloatingTargetPlatformVersion>true</UseFloatingTargetPlatformVersion>
</PropertyGroup>

Standaard: false (gebruik de oudste platformversie voor bibliotheekprojecten in .NET 10+).

Deze eigenschap is alleen van toepassing op bibliotheekprojecten (OutputType=Library) die geen app-extensies zijn en die geen expliciete doelplatformversie hebben opgegeven (de doelplatformversie is het optionele versienummer aan het einde van de TargetFramework eigenschap, bijvoorbeeld voor TargetFramework net10.0-ios26.0 is de doelplatformversie expliciet 26.0).

Deze eigenschap is geïntroduceerd in .NET 10.

UseHardenedRuntime

Een booleaanse eigenschap die aangeeft of een beperkte runtime is ingeschakeld.

Van toepassing op macOS- en Mac Catalyst-projecten.

GebruikInterpreter

Hiermee schakelt u de interpreter in (voor alle assembly's).

Dit komt overeen met het instellen van MtouchInterpreter=all.

Van toepassing op iOS-, tvOS- en Mac Catalyst-apps (wanneer u Geen NativeAOT gebruikt).

Het standaardgedrag is om de interpreter niet in te schakelen.

Notitie

MAUI wijzigt de standaardinstelling door UseInterpreter=true in te stellen voor de "Debug"-configuratie.

Zie MtouchInterpreter- voor meer informatie.

UseNativeHttpHandler

Of de systeemeigen HTTP-handler de standaard-HTTP-handler moet zijn of niet.

Standaard: waar voor alle platforms, met uitzondering van macOS.

VerifieerRechten

Kies of de toestemmingen die de app aanvraagt gevalideerd moeten worden.

Geldige waarden voor deze eigenschap:

  • disable: Validatie is uitgeschakeld.
  • warn: Eventuele validatiefouten worden weergegeven als waarschuwingen.
  • error: Eventuele validatiefouten worden weergegeven als fouten. Dit is de standaardwaarde.

Het validatieproces valideert mogelijk niet alle rechten, noch is het gegarandeerd dat het niet te veel is.

Als de validatie mislukt voor rechten die daadwerkelijk werken, dient u een nieuw probleem in.

ValidateXcodeVersion

Kies of de huidige Xcode-versie moet worden gevalideerd.

De standaardwaarde is voor valideren; stel in op false om te deactiveren.

Notitie

Het gebruik van een andere versie dan de aanbevolen versie veroorzaakt waarschijnlijk later in het buildproces problemen.

XamMacResourcePrefix

De map waarin resources worden opgeslagen (dit voorvoegsel wordt verwijderd bij het kopiëren van resources naar de app-bundel).

Van toepassing op macOS-projecten.

Overweeg in plaats daarvan de geïntegreerde eigenschap AppBundleResourcePrefix te gebruiken.

Zie ook IPhoneResourcePrefix en MonoMacResourcePrefix.

ZipPath

Het volledige pad naar het opdrachtregelprogramma zip.

Het standaardgedrag is om xcrun zipte gebruiken.