Partager via


Propriétés de build pour iOS, Mac Catalyst, macOS et tvOS

Les propriétés MSBuild contrôlent le comportement des cibles . Ils sont spécifiés dans le fichier projet, par exemple MyApp.csproj, dans un groupe de propriétés MSBuild.

AltoolPath

Chemin complet de l’outil altool.

Le comportement par défaut consiste à utiliser xcrun altool.

AppBundleResourcePrefix

Répertoire dans lequel les ressources sont stockées (ce préfixe est supprimé lors de la copie de ressources dans le bundle d’applications).

Si elle n’est pas définie explicitement, cette propriété hérite de sa valeur des propriétés de préfixe de ressource spécifiques à la plateforme (IPhoneResourcePrefix, MonoMacResourcePrefix ou XamMacResourcePrefix en fonction de la plateforme).

Valeur par défaut : « Ressources »

AppBundleDir

Emplacement du bundle d’applications généré.

AppBundleExtraOptions

Arguments supplémentaires avancés pour la création d’un bundle d’applications.

L’ensemble d’arguments valide dépend de la plateforme.

En règle générale, elles ne doivent pas être utilisées, sauf si elles sont spécifiées par un ingénieur Microsoft.

Icône de l'application

Le groupe d’éléments AppIcon peut être utilisé pour spécifier une icône d’application pour l’application.

La valeur de la propriété doit pointer vers le nom de fichier d’une ressource d’image .appiconset (pour iOS, macOS et Mac Catalyst) ou .brandassets (pour tvOS) à l’intérieur d’un catalogue de ressources.

Exemple:

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

Voir aussi :

Version d'affichage de l'application

Si elle est définie, spécifie la valeur CFBundleShortVersionString dans le manifeste de l’application (Info.plist).

Il s’agit d’une propriété qui prend en charge «Projet unique .NET».

Pour plus d’informations, consultez OneDotNetSingleProject.

ApplicationId

Si elle est définie, spécifie la valeur CFBundleIdentifier dans le manifeste de l’application (Info.plist).

Il s’agit d’une propriété qui prend en charge «Projet unique .NET».

Pour plus d’informations, consultez OneDotNetSingleProject.

TitreDeLApplication

Si elle est définie, spécifie la CFBundleDisplayName dans le manifeste de l’application (Info.plist).

Il s’agit d’une propriété qui prend en charge «Projet unique .NET».

Pour plus d’informations, consultez OneDotNetSingleProject.

Version de l'application

Si elle est définie, spécifie la CFBundleVersion dans le manifeste de l’application (Info.plist).

Il s’agit d’une propriété qui prend en charge «Projet unique .NET».

Pour plus d’informations, consultez OneDotNetSingleProject.

ArchiveBasePath

Emplacement où les archives sont stockées sur Windows pour une build distante.

La valeur par défaut est : %LocalAppData%\Xamarin\iOS\Archives

Applicable uniquement aux projets iOS (étant donné que seuls les projets iOS peuvent être générés à distance à partir de Windows).

ArchiveOnBuild

Si une archive Xcode doit être créée à la fin de la build.

BGenEmitDebugInformation

Indique si l’outil bgen (générateur de liaison) doit ou non émettre des informations de débogage.

Le comportement par défaut est true lorsque la propriété Debug est définie sur true.

BGenExtraArgs

Tous les arguments supplémentaires pour l’outil bgen (générateur de liaisons).

BGenToolExe

Nom de l’exécutable bgen (outil utilisé par les projets de liaison pour générer des liaisons).

Le comportement par défaut consiste à utiliser l’outil bgen fourni avec notre charge de travail.

BGenToolPath

Le répertoire où se situe le bgen (BGenToolExe).

Le comportement par défaut consiste à utiliser l’outil bgen fourni avec notre charge de travail.

BuildIpa

Si un package (.ipa) doit être créé pour le bundle d’applications à la fin de la build.

Applicable uniquement aux projets iOS et tvOS.

Consultez createPackage pour les projets macOS et Mac Catalyst.

BundleCreateDump

CoreCLR a un utilitaire de ligne de commande appelé createdump pour créer des vidages de base si le processus se bloque. macOS crée automatiquement des rapports d’incident pour toutes les applications App Store et les met à la disposition du développeur d’applications. Par conséquent, l’outil createdump n’est pas utile pour de nombreuses applications macOS et, par conséquent, il n’est pas inclus dans les applications par défaut.

Cela peut être substitué en définissant la BundleCreateDump propriété :

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

Remarque : l’outil createdump ne fonctionne actuellement pas pour les applications en bac à sable (#18961) ;

Applicable uniquement aux projets qui utilisent le runtime CoreCLR (qui, au moment de cette écriture, est uniquement des projets macOS).

BundleOriginalResources

Cette propriété détermine si les ressources sont compilées avant d’être incorporées dans des projets de bibliothèque ou si la version d’origine (non compilée) est incorporée.

Historiquement, les ressources ont été compilées avant d’être incorporées dans des projets de bibliothèque, mais cela nécessite que Xcode soit disponible, ce qui présente quelques inconvénients :

  • Il ralentit les builds distantes sur Windows.
  • Il ne fonctionnera pas lors de la génération locale sur Windows, ni sur une autre plateforme, sauf macOS.
  • Les ressources sont compilées à l’aide du Xcode disponible actuel, qui n’a peut-être pas les mêmes fonctionnalités qu’un Xcode potentiellement plus récent disponible lorsque la bibliothèque en question est consommée.
  • Il est impossible d’avoir une vue complète de tous les programmes lors de la création d’une application, ce qui est nécessaire pour détecter les conflits de ressources.

Par conséquent, nous avons ajouté la prise en charge de l'intégration des ressources originales dans des bibliothèques. Cette fonctionnalité sera facultative dans .NET 9, mais deviendra activée par défaut à partir de .NET 10.

Valeur par défaut de cette propriété false dans .NET 9 et true dans .NET 10+.

Remarque

Créez un problème si vous constatez que vous devez désactiver cette fonctionnalité, car il est possible que l’option de désactivation soit supprimée ultérieurement.

CodesignAllocate

Chemin d’accès à l’outil codesign_allocate.

Par défaut, cette valeur est détectée automatiquement.

CodesignConfigureDependsOn

Il s’agit d’un point d’extension pour la compilation : un développeur peut ajouter des cibles à cette propriété pour exécuter ces cibles avant que la compilation examine les propriétés de signature de code.

Cela peut par exemple être utilisé pour désactiver la signature de code pour les builds du simulateur :

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

CodeSignerDépendDe

Il s’agit d’un point d’extension pour la build : un développeur peut ajouter des cibles à cette propriété pour exécuter ces cibles avant la signature de l’offre groupée d’applications.

Exemple:

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

CodesignEntitlements

Chemin d’accès au fichier des droits qui spécifie les droits requis par l’application.

Habituellement « Entitlements.plist ».

Nous allons automatiquement définir cette valeur sur « Entitlements.plist » si ce fichier existe dans le répertoire racine du projet.

Cela peut être empêché en définissant la propriété EnableDefaultCodesignEntitlements sur false.

CodesignExtraArgs

Arguments supplémentaires passés à l’outil « codesign » lors de la signature du bundle d’applications.

CodesignKey

Spécifie la clé de signature de code à utiliser lors de la signature du bundle d’applications.

CodesignKeychain

Trousseau de clés à utiliser lors de la signature de code.

Clé de signature de code

Spécifie la clé de signature de code à utiliser lors de la signature du bundle d’applications.

Applicable uniquement aux applications macOS et Mac Catalyst, mais il est recommandé d’utiliser la propriété CodesignKey à la place (qui fonctionne sur toutes les plateformes).

CodesignProvision

Spécifie le profil d’approvisionnement à utiliser lors de la signature du bundle d’applications.

CodesignResourceRules

Chemin d’accès au ResourceRules.plist à copier dans le paquet de l'application.

CodesignRequireProvisioningProfile

Spécifie si un profil d’approvisionnement est requis lors de la signature de l’offre groupée d’applications.

Par défaut, nous avons besoin d’un profil d’approvisionnement si :

  • macOS, Mac Catalyst : un profil d’approvisionnement a été spécifié (avec la propriété CodesignProvision).
  • iOS, tvOS : la génération pour un appareil ou un fichier de droits d’utilisation a été spécifiée (avec la propriété CodesignEntitlements).

La définition de cette propriété sur true ou false remplace la logique par défaut.

CompressBindingResourcePackage

Les références natives d’un projet de liaison sont copiées dans le répertoire de sortie pendant le processus de génération, en regard de l’assembly de liaison (dans quelque chose que nous appelons un « package de ressources de liaison »).

Ces références natives peuvent être stockées compressées à l’intérieur d’un fichier zip (nommé $(AssemblyName).resources.zip, ou as-is, à l’intérieur d’un répertoire nommé $(AssemblyName).resources.

La CompressBindingResourcePackage propriété spécifie s’il faut créer un fichier zip ou un répertoire.

Les valeurs possibles sont les suivantes :

  • auto: déterminer automatiquement la meilleure option (actuellement, un fichier zip est toujours créé, mais une fois que Visual Studio prendra en charge les chemins longs sous Windows, cela pourrait changer pour ne créer que des packages de ressources de liaison zip avec des liens symboliques).
  • true: créer un fichier zip
  • false: créer un répertoire

La valeur par défaut est auto.

Cela s’applique également à la façon dont les références natives sont stockées dans NuGets.

Remarque

Dans certains cas, il peut être utile de forcer un fichier zip sur iOS, en particulier lorsqu’il existe une infrastructure avec des fichiers qui ont des noms longs, car le fichier zip peut parfois contourner les problèmes de MAX_PATH sur Windows.

CopySceneKitAssetsPath

Chemin complet de l’outil copySceneKitAssets.

Le comportement par défaut consiste à utiliser xcrun copySceneKitAssets.

CoreMLCompilerPath

Chemin complet de l’outil coremlc.

Le comportement par défaut consiste à utiliser xcrun coremlc.

CréerLaDépendanceDuPaquetApp

Il s’agit d’un point d’extension pour la build : un développeur peut ajouter des cibles à cette propriété pour exécuter ces cibles lors de la création du bundle d’applications.

Exemple:

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

CréerIPADépendances

Il s’agit d’un point d’extension pour la construction : un développeur peut ajouter des objectifs à cette propriété pour exécuter ces objectifs lors de la création d’une IPA.

Applicable à toutes les plateformes qui créent des archives IPA (actuellement iOS et tvOS).

Exemple:

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

CréerPaquet

Si un package (.pkg) doit être créé pour l’ensemble d’applications à la fin de la build.

Applicable uniquement aux projets macOS et Mac Catalyst.

Consultez BuildIpa pour les projets iOS et tvOS.

DeviceSpecificBuild

Si la build doit être spécifique à l’appareil sélectionné.

Applicable à toutes les plateformes qui prennent en charge les builds spécifiques à l’appareil (actuellement iOS et tvOS).

CheminSortieIntermédiaireSpécifiqueAuDispositif

Chemin de sortie intermédiaire à utiliser lorsque des builds spécifiques à l’appareil sont activées.

Applicable à toutes les plateformes qui prennent en charge les builds spécifiques à l’appareil (actuellement iOS et tvOS).

CheminDeSortieSpecifiqueAuDispositif

Chemin d’accès de sortie à utiliser lorsque des builds spécifiques à l’appareil sont activées.

Applicable à toutes les plateformes qui prennent en charge les builds spécifiques à l’appareil (actuellement iOS et tvOS).

DiagnosticAddress

Adresse IP à laquelle dotnet-dsrouter s’exécute. Il s’agit typiquement de 127.0.0.1 lors du profilage sur le simulateur et de l’adresse IP de l’ordinateur lors du profilage sur un appareil où dotnet-dsrouter.

Il s’agit du composant d’adresse IP de DiagnosticConfiguration'.

Définit implicitement EnableDiagnostics sur true.

La valeur par défaut est 127.0.0.1.

diagnosticConfiguration

Une valeur fournie par dotnet-dsrouter pour DOTNET_DiagnosticPorts telle que :

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

Notez que le caractère , doit être échappé avec %2c s’il est passé en ligne de commande à dotnet build:

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

Cette opération définit automatiquement la DOTNET_DiagnosticPorts variable d’environnement empaquetée à l’intérieur de l’application, afin que la variable d’environnement soit définie lors du lancement de l’application.

Définit implicitement EnableDiagnostics sur true.

Le comportement par défaut consiste à calculer cette valeur à partir des autres propriétés de diagnostic (DiagnosticAddress, DiagnosticPort, DiagnosticListenMode et DiagnosticSuspend).

Si elle est définie, l’une des autres propriétés de diagnostic est ignorée.

Mode d'écoute diagnostique

Valeur fournie par dotnet-dsrouter, telle que connect ou listen, le composant du mode d’écoute de DiagnosticConfiguration`.

Définit implicitement EnableDiagnostics sur true.

La valeur par défaut est listen.

DiagnosticPort

Valeur fournie par dotnet-dsrouter tel que 9000, le composant de port de DiagnosticConfiguration'.

Définit implicitement EnableDiagnostics sur true.

La valeur par défaut est 9000.

DiagnosticSuspend

Valeur qui spécifie le comportement de démarrage lors du profilage d’une application.

Définissez cette option pour true suspendre l’application au démarrage (en attendant que le serveur de diagnostics se connecte à l’application) ou false pour lancer l’application comme d’habitude (et connecter le serveur de diagnostics à l’application ultérieurement).

Cela correspond à la suspend/nosuspend valeur dans DiagnosticConfiguration'.

Définit implicitement EnableDiagnostics sur true.

La valeur par défaut est false.

DittoPath

Chemin complet de l’exécutable ditto.

Le comportement par défaut consiste à utiliser /usr/bin/ditto.

IntégrerRessourcesÀLaDemande

Si les ressources à la demande doivent être incorporées dans le bundle d’applications.

Valeur par défaut : true

Activer la Signature du Code

Si la signature de code est activée.

La signature de code est activée par défaut pour toutes les plateformes ; cela peut être remplacé par cette propriété.

ActiverLesPermissionsParDéfautDeCodesign

Consultez CodesignEntitlements.

ActiverRessourcesÀLaDemande

Si les ressources à la demande sont activées.

Valeur par défaut : false pour macOS, true pour toutes les autres plateformes.

ActiverLaSignatureDePackage

Si le .pkg créé (si CreatePackage a été activé) doit être signé.

Applicable uniquement à macOS et Mac Catalyst.

ActiverDiagnostics

Activez les composants requis pour que les diagnostics (tels que le profilage) fonctionnent.

Il est activé par défaut pour les builds de débogage (lorsque MtouchDebug ou MmpDebug est activé), mais doit être activé manuellement avant le profilage des versions de production.

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

Cela augmente légèrement la taille de l’application.

Applicable uniquement lors de l’utilisation du runtime Mono (CoreCLR prend toujours en charge les diagnostics, tandis que NativeAOT ne le fait jamais).

EnableSGenConc

Active le mode concurrentiel du ramasse-miettes SGen.

Applicable uniquement à iOS, tvOS et Mac Catalyst (lorsque vous n’utilisez pas NativeAOT).

EventSourceSupport

Quand la valeur est définie sur false, désactive la prise en charge d’EventSource de .NET à partir des applications réduites. La désactivation de cette fonctionnalité empêcherait le fonctionnement des outils de diagnostic .NET tels que dotnet-counters, mais permettrait de réduire la taille de l'application.

Valeur par défaut : false est défini à Optimize lorsque true est défini à Optimize (qui est la valeur par défaut pour les builds $(EnableDiagnostics)), sauf si est activé.

Générer le Manifeste d'Application

Si un manifeste d’application (Info.plist) doit être généré.

Valeur par défaut : true

GeneratedSourcesDir

Où les données générées à partir du générateur sont enregistrées.

InclureTousLesIcônesD'Application

Définissez la propriété IncludeAllAppIcons sur true pour inclure automatiquement toutes les icônes d’application de tous les catalogues de ressources dans l’application.

Exemple:

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

Voir aussi :

iOSMinimumVersion

Spécifie la version minimale d’iOS sur laquelle l’application peut s’exécuter.

Applicable à iOS ; la définition de cette valeur définit SupportedOSPlatformVersion pour les projets iOS (uniquement).

IPhoneResourcePrefix

Répertoire dans lequel les ressources sont stockées (ce préfixe est supprimé lors de la copie de ressources dans le bundle d’applications).

Applicable aux projets iOS, tvOS et Mac Catalyst.

Envisagez plutôt d’utiliser la propriété AppBundleResourcePrefix unifiée.

Consultez également MonoMacResourcePrefix et XamMacResourcePrefix.

IpaIncludeArtwork

Si l’illustration doit être incluse dans l’IPA.

Applicable uniquement aux projets iOS et tvOS.

Nom de Paquet Ipa

Spécifie le nom du fichier .ipa résultant (sans le chemin d’accès) lors de la création d’un package IPA (voir BuildIpa). IpaPackagePath remplace cette valeur.

Applicable uniquement aux projets iOS et tvOS.

IpaPackageDir

Spécifie le répertoire du fichier .ipa résultant lors de la création d’un package IPA (voir BuildIpa). IpaPackagePath remplace cette valeur.

Applicable uniquement aux projets iOS et tvOS.

IpaPackagePath

Spécifie le chemin d’accès au fichier .ipa résultant lors de la création d’un package IPA (voir BuildIpa).

Applicable uniquement aux projets iOS et tvOS.

IsAppExtension

Si un projet est une extension d’application.

EstUnProjetLiant

Si un projet est un projet contraignant.

IsXPCService

Si une extension macOS est un service xpc.

Applicable uniquement aux projets macOS.

Mode de Lien

Spécifie le mode de lien du projet (None, SdkOnly ou Full).

Applicable aux projets macOS, mais cette propriété est déconseillée, utilisez TrimMode à la place.

Voir aussi MtouchLink.

LierAuxBibliothèquesDuSystèmeSwift

Si la valeur est true, la build indique à l’éditeur de liens natif où trouver les bibliothèques système de Swift.

Cela est utile lorsqu’une bibliothèque native utilise Swift, auquel cas l’éditeur de liens natif doit savoir où trouver les bibliothèques système de Swift.

Cela signifie actuellement que ces arguments seront transmis à l’éditeur de liens natif :

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

L’ensemble exact d’arguments peut changer à l’avenir.

MacCatalystMinimumVersion

Spécifie la version minimale de Mac Catalyst (iOS) sur laquelle l’application peut s’exécuter.

Applicable à Mac Catalyst ; la définition de cette valeur définira SupportedOSPlatformVersion pour les projets Mac Catalyst (uniquement).

MaciOSPrepareForBuildDependsOn

Propriété délimitée par des points-virgules qui peut être utilisée pour étendre le processus de construction. Les cibles MSBuild ajoutées à cette propriété s’exécutent tôt dans la build pour les types de projets d’application et de bibliothèque. Cette propriété est vide par défaut.

Exemple:

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

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

Cette propriété a été introduite dans .NET 9.

macOSMinimumVersion

Spécifie la version minimale de macOS sur laquelle l’application peut s’exécuter.

Applicable à macOS ; la définition de cette valeur définit SupportedOSPlatformVersion pour les projets macOS (uniquement).

MacOSXSdkVersion

Version du Kit de développement logiciel (SDK) macOS à utiliser pour la build.

Par défaut : détecté automatiquement en fonction de la version par défaut fournie avec le Xcode sélectionné.

Voir aussi MtouchSdkVersion.

ModeExceptionGéréMarshal

Choisissez comment les exceptions managées sont traitées lorsqu'un cadre natif est rencontré pendant le déroulement de la pile, lors du traitement de l'exception managée.

Valeurs valides :

  • default: Actuellement, il s’agit de throwobjectivecexception.
  • unwindnativecode: ce n’est pas disponible lors de l’utilisation du runtime CoreCLR.
  • throwobjectivecexception: Interceptez l'exception managée et convertissez-la en une exception Objective-C.
  • abort: abandonner le processus.
  • disable: Désactivez l’interception des exceptions managées. Pour MonoVM, cela équivaut à unwindnativecode, pour CoreCLR, cela équivaut à abort.

Pour plus d’informations, consultez Marshaling d’exceptions et MarshalObjectiveCExceptionMode.

MarshalObjectiveCExceptionMode

Choisissez comment Objective-C exceptions sont gérées lors de la rencontre d’une trame managée pendant le déroulement de la pile lors du traitement de l’exception Objective-C.

Valeurs valides :

  • default: Actuellement, il s’agit de throwmanagedexception.
  • unwindmanagedcode: ce n’est pas disponible lors de l’utilisation du runtime CoreCLR.
  • throwmanagedexception: interceptez l’exception Objective-C et convertissez-la en exception managée.
  • abort: abandonner le processus.
  • disable : désactiver l’interception des exceptions Objective-C.

Pour plus d’informations, consultez Marshaling d’exceptions et MarshalManagedExceptionMode.

MdimportPath

Chemin complet de l’outil mdimport.

Le comportement par défaut consiste à utiliser xcrun mdimport.

MetalLibPath

Le chemin complet de l’outil metallib (Metal Linker).

Le comportement par défaut consiste à utiliser xcrun metallib.

MetalPath

Chemin complet du compilateur Metal.

Le comportement par défaut consiste à utiliser xcrun metal.

MetricsSupport

Quand la valeur est définie sur false, désactive la prise en charge des métriques de .NET pour les applications réduites. La désactivation de cette fonctionnalité empêcherait les API telles que System.Diagnostics.Metrics de fonctionner, mais permettrait une réduction de la taille de l’application.

Valeur par défaut : false est défini à Optimize lorsque true est défini à Optimize (qui est la valeur par défaut pour les builds $(EnableDiagnostics)), sauf si est activé.

MmpDebug

Active le mode de débogage pour la création d’un bundle d’applications.

Applicable uniquement aux projets macOS.

Voir aussi MtouchDebug.

MobileAggressiveAttributeTrimming

Cette propriété détermine si de nombreux attributs qui sont très rarement nécessaires au moment de l’exécution doivent être supprimés.

Cette option est activée par défaut.

Notez que si les attributs supprimés sont très rarement utilisés, il est techniquement possible que la suppression puisse modifier le comportement d’exécution.

Par exemple, System.Xml.Serialization se comporte différemment si un constructeur a l’attribut [Obsolete] (qui est l’un des attributs supprimés). Il s'agit d'un risque suffisamment faible pour justifier la suppression de ces attributs par défaut pour économiser de l'espace.

La liste des attributs supprimés peut changer à l’avenir, mais au moment de cette écriture (pour .NET 10), il s’agit des attributs suivants :

  • Microsoft.CodeAnalysis.EmbeddedAttribute
  • System.CLSCompliantAttribute
  • System.CodeDom.Compiler.GeneratedCodeAttribute
  • System.ComponentModel.EditorBrowsableAttribute
  • System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute
  • System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute
  • System.Diagnostics.CodeAnalysis.DynamiqueAccessedMembersAttribute
  • System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
  • System.Diagnostics.CodeAnalysis.ExperimentalAttribute (Attribut expérimental de System.Diagnostics.CodeAnalysis)
  • 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
  • Système.Runtime.CompilerServices.AttributExigeantCaractéristiquesDuCompilateur
  • 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

Cette propriété a été introduite dans .NET 10.

MonoBundlingExtraArgs

Arguments supplémentaires spécifiant comment créer le bundle d’applications.

Applicable uniquement aux projets macOS.

Cette propriété est déconseillée, utilisez AppBundleExtraOptions à la place.

MonoMacResourcePrefix

Répertoire dans lequel les ressources sont stockées (ce préfixe est supprimé lors de la copie de ressources dans le bundle d’applications).

Applicable uniquement aux projets macOS.

Envisagez plutôt d’utiliser la propriété AppBundleResourcePrefix unifiée.

Voir également IPhoneResourcePrefix et XamMacResourcePrefix.

MonoUtiliserBitmapInterfaceCompressée

Cela permet au runtime Mono d’utiliser une version compressée des bitmaps d’interface (les bitmaps d’interface sont utilisées pour déterminer si certains types implémentent une interface donnée).

Ces bitmaps peuvent utiliser une quantité importante de mémoire au moment de l’exécution, en particulier pour les applications qui ont une quantité importante d’interfaces.

Ce paramètre est désactivé par défaut, mais il peut être activé comme suit, ce qui réduit la quantité de mémoire utilisée au moment de l’exécution :

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

L’inconvénient est que les vérifications de type (obj is SomeInterface) seront plus lentes.

Applicable uniquement lors de l’utilisation du runtime Mono.

MtouchDebug

Active le mode de débogage pour la création d’un bundle d’applications.

Applicable aux projets iOS, tvOS et Mac Catalyst.

Voir également MmpDebug.

MtouchEnableSGenConc

Active le mode concurrentiel du ramasse-miettes SGen.

Applicable uniquement à iOS, tvOS et Mac Catalyst lorsque vous n’utilisez pas NativeAOT.

Cette propriété est obsolète, utilisez EnableSGenConc à la place.

MtouchExtraArgs

Arguments supplémentaires spécifiant comment créer le bundle d’applications.

Applicable uniquement aux projets iOS, tvOS et Mac Catalyst.

Cette propriété est déconseillée, utilisez AppBundleExtraOptions à la place.

MtouchInterpreter

Active l’interpréteur et peut éventuellement prendre une liste d'assemblages, séparée par des virgules, à interpréter (si elle est précédée d'un signe moins, l'assemblage est alors compilé en AOT à la place). "'all' peut être utilisé pour spécifier toutes les assemblées." Cet argument peut être spécifié plusieurs fois.

Exemple:

<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>

Un raccourci pour la MtouchInterpreter consiste à définir UseInterpreter=true, qui équivaut à MtouchInterpreter=all.

Si les UseInterpreter et les MtouchInterpreter sont définis, MtouchInterpreter est prioritaire.

Applicable aux applications iOS, tvOS et Mac Catalyst (quand elles n’utilisent pas NativeAOT).

Le comportement par défaut consiste à ne pas activer l’interpréteur.

Remarque

MAUI modifie la valeur par défaut en définissant UseInterpreter=true pour la configuration "Debug".

Spécifie le mode de lien du projet (None, SdkOnly, Full).

Applicable aux projets iOS, tvOS et Mac Catalyst, mais cette propriété est déconseillée, utilisez TrimMode à la place.

Voir également LinkMode.

MtouchSdkVersion

Version du Kit de développement logiciel (SDK) iOS ou tvOS à utiliser pour la build.

Par défaut : détecté automatiquement en fonction de la version par défaut fournie avec le Xcode sélectionné.

Voir également macOSXSdkVersion.

MtouchUseLlvm

Propriété booléenne qui spécifie si la compilation AOT doit être effectuée à l’aide de LLVM.

Applicable aux projets iOS, tvOS et Mac Catalyst.

Par défaut :

  • Sur iOS et tvOS : activé pour les builds Release (où Configuration="Release").
  • Sur Mac Catalyst : jamais activé par défaut.

NoBindingEmbedding

Propriété booléenne qui spécifie si les bibliothèques natives dans les projets de liaison doivent être incorporées dans l’assembly managé ou placées dans un répertoire .resources en regard de l’assembly managé.

La valeur par défaut est true (ce qui signifie que les bibliothèques natives ne pas être incorporées dans l’assembly managé).

Remarque

Xcframeworks ne fonctionnera pas correctement si elle est incorporée dans l’assembly managé (si cette propriété n’est pas true).

NoDSymUtil

Propriété booléenne qui spécifie si la génération .dSYM doit être désactivée.

Par défaut :

  • true pour iOS et tvOS lors de la compilation pour le simulateur.
  • true pour macOS et Mac Catalyst, sauf si vous créez une archive (ArchiveOnBuild=true)

Cela signifie que l’archive .dSYM est générée dans les cas suivants (par défaut) :

  • Sur iOS et tvOS lors de la construction pour l’appareil.
  • Sur macOS et Mac Catalyst lors de la création d’une archive (ArchiveOnBuild=true).

NoSymbolStrip

Propriété booléenne qui spécifie si les symboles de débogage sont supprimés de l’application au moment de la génération.

Le comportement par défaut consiste à conserver les symboles de débogage pour :

  • builds Debug pour les plateformes de bureau.
  • Builds de simulateur pour les plateformes mobiles.

Exemple pour conserver les symboles de débogage :

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

OnDemandResourcesInitialInstallTags

Propriété de chaîne qui spécifie les balises d’installation initiales pour les ressources à la demande.

OnDemandResourcesPrefetchOrder

Propriété de type chaîne qui définit l'ordre de préchargement pour les ressources à la demande.

UrlDesRessourcesÀLaDemande

Propriété de chaîne qui spécifie l’URL de ressource pour les ressources à la demande.

Optimiser les PNG

Propriété booléenne qui spécifie si les images png doivent être optimisées.

OptimiserLesImagesPngDépendDe

Il s’agit d’un point d’extension pour la build : un développeur peut ajouter des cibles à cette propriété pour exécuter ces cibles avant que toutes les images png soient optimisées.

Exemple:

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

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

OptimiserLesListesDePropriétés

Propriété booléenne qui spécifie si les listes de propriétés (plists) doivent être optimisées.

OptimisationDesListesDePropriétésDépendDe

Il s’agit d’un point d’extension pour la build : un développeur peut ajouter des cibles à cette propriété pour exécuter ces cibles avant que les listes de propriétés (plists) ne soient optimisées.

Exemple:

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

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

Clé de Signature de Paquet

Spécifie la clé de signature de code pour signer le package lors de la création de .pkg pour un projet macOS et Mac Catalyst.

Applicable uniquement aux applications macOS et Mac Catalyst.

PackagingExtraArgs

Spécifie tous les arguments supplémentaires à passer à l’outil « productbuild » lors de la création de .pkg pour un projet macOS et Mac Catalyst.

Applicable uniquement aux applications macOS et Mac Catalyst.

PkgPackagePath

Spécifie le chemin d’accès au fichier .pkg résultant lors de la création d’un package (voir CreatePackage).

Applicable uniquement aux applications macOS et Mac Catalyst.

PlutilPath

Le chemin complet vers l'outil en ligne de commande plutil.

Le comportement par défaut consiste à utiliser xcrun plutil.

PngCrushPath

Le chemin complet vers l'outil en ligne de commande pngcrush.

Le comportement par défaut consiste à utiliser xcrun pngcrush.

ProcessEnums

Propriété booléenne qui spécifie si les énumérations doivent être traitées en tant que définition d’API dans les projets de liaison.

ProductBuildPath

Chemin complet de l’outil productbuild.

Le comportement par défaut consiste à utiliser xcrun productbuild.

DéfinitionDuProduit

Modèle de définition de produit (.plist) à utiliser lors de la création de la définition de produit à transmettre à l’outil de génération de produit lors de la création de packages (.pkg).

Applicable uniquement aux applications macOS et Mac Catalyst.

ReferenceNativeSymbol

Le groupe d’éléments ReferenceNativeSymbol peut être utilisé pour spécifier comment gérer un symbole natif donné : ignorez-le ou demandez à l’éditeur de liens natif de le conserver (en passant le symbole en tant que -u ... ou dans un fichier de symboles à l’éditeur de liens natif).

Il existe deux types de métadonnées pris en charge :

  • SymbolType: ObjectiveCClass, Function ou Field. Utilisé pour calculer le nom natif complet d’un symbole (par exemple, le symbole natif de la classe Objective-C MyClass est _OBJC_CLASS_$_MyClass, tandis que pour une fonction MyFunction il est juste _MyFunction.
  • SymbolMode: Ignore ou non défini. Ignore signifie ne pas passer le symbole donné à l’éditeur de liens natif, la valeur par défaut est de le faire.

SymbolType est nécessaire, alors que SymbolMode n’est pas nécessaire.

Exemple de symbole à conserver :

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

Exemple de symbole à ignorer :

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

NécessiteLienAvecAttributPourRechercheDeClasseObjectiveC

Nous allons effectuer une analyse automatique de toutes les bibliothèques pour les classes managées qui correspondent à des classes Objective-C existantes, puis créer une référence native lors de la construction pour ces classes Objective-C.

De cette façon, l’éditeur de liens natif ne supprime pas ces classes Objective-C, pensant qu’ils ne sont pas utilisés.

Toutefois, cela peut entraîner un problème si une classe managée fait référence à une classe Objective-C qui n’existe pas. Le correctif approprié pour cela consiste à supprimer ces classes managées de la build, mais cela peut être fastidieux, en particulier si la classe managée provient d’une référence binaire (par exemple, NuGet).

Dans ces cas, il est possible de définir la propriété RequireLinkWithAttributeForObjectiveCClassSearch sur true afin que nous n’analysions que les bibliothèques avec l’attribut [LinkWith] pour les classes Objective-C.

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

RunWithOpen

Cette propriété détermine si les applications sont lancées à l’aide de la open commande sur macOS ou si l’exécutable de l’application est exécuté directement.

Cela s’applique uniquement aux applications macOS et Mac Catalyst.

La valeur par défaut est true. Dans ce mode, l’application sera lancée par macOS comme toute autre application d’interface utilisateur, toute sortie stdout/stderr sera avalée par macOS, et la dotnet run commande se termine dès que l’application a lancé.

Si la valeur est définie false, toute sortie stdout/stderr est imprimée sur le terminal actuel et la dotnet run commande ne se termine pas tant que l’application n’a pas quitté l’application.

Les propriétés suivantes peuvent être utilisées pour configurer le comportement lors de la définition true (par exemple, à l’aide de la open commande) :

OpenNewInstance

Si une nouvelle instance est ouverte si l’application est déjà en cours d’exécution (valeur par défaut false).

Cela transmettra -n à open si c'est défini sur true.

Exemple:

$ dotnet run -p:OpenNewInstance=false

OpenWaitForExit

Si « dotnet run » doit attendre la sortie de l’application (valeur par défaut false).

Cela transmettra -W à open si c'est défini sur true.

Exemple:

$ dotnet run -p:OpenWaitForExit=true

OpenArguments

Cette propriété peut être utilisée pour passer des arguments supplémentaires à la open commande.

Exemple (pour définir des variables d’environnement) :

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

Exemple (pour rediriger stdout et stderr vers un fichier) :

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

Exécutez man open pour afficher la liste de toutes les options open acceptées.

StandardOutputPath

Cette propriété peut être utilisée pour rediriger la sortie stdout de l’application vers un fichier.

Exemple d’écriture dans un fichier :

$ dotnet run -p:StandardOutputPath=stdout.txt

Exemple d’écriture dans le terminal actuel :

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

Remarque : cela peut également être effectué en passant --stdout ... à l’aide de la propriété OpenArguments .

StandardErrorPath

Cette propriété peut être utilisée pour rediriger la sortie stderr de l’application vers un fichier.

Exemple d’écriture dans un fichier :

$ dotnet run -p:StandardErrorPath=stderr.txt

Exemple d’écriture dans le terminal actuel :

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

Remarque : cela peut également être effectué en passant --stderr ... à l’aide de la propriété OpenArguments .

StandardInputPath

Cette propriété peut être utilisée pour rediriger l’entrée stdin vers l’application à partir d’un fichier.

Exemple:

$ dotnet run -p:StandardInputPath=stdin.txt

Remarque : cela peut également être effectué en passant --stdin ... à l’aide de la propriété OpenArguments .

SdkIsSimulator

Cette propriété est une propriété en lecture seule (ce paramètre n’aura aucun effet) qui spécifie si nous créons un simulateur ou non.

Elle est définie uniquement après l’évaluation des importations et des propriétés . Cela signifie que la propriété n’est pas définie lors de l’évaluation des propriétés dans le fichier projet. Cela ne fonctionnera donc pas :

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

Toutefois, l’une des opérations suivantes fonctionne :

<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>

Remarque : cette propriété sera toujours false sur macOS et Mac Catalyst.

StripPath

Le chemin complet vers l'outil en ligne de commande strip.

Le comportement par défaut consiste à utiliser xcrun strip.

SupportedOSPlatformVersion

Spécifie la version minimale du système d’exploitation sur laquelle l’application peut s’exécuter.

Il est également possible d’utiliser une propriété spécifique à la plateforme :

TrimMode

Spécifie la granularité de découpage.

Les options valides sont les suivantes :

  • full: découper chaque assembly.
  • partial: Découper les assemblages qui ont opté pour le découpage.
  • copy: Ne pas découper d'assemblages.

Pour un peu plus d'informations sur la propriété , consultez TrimMode.

Remarque

Pour des raisons techniques, le découpage doit s’exécuter pour tous les projets iOS, tvOS, macOS et Mac Catalyst, même si aucun assembly n’est à découper. Pour cette raison, il n’est pas valide de désactiver le découpage en définissant PublishTrimmed sur false : pour désactiver le découpage, définissez TrimMode=copy à la place (une erreur de génération est générée si PublishTrimmed est définie sur false).

La propriété TrimMode équivaut aux propriétés MtouchLink (pour iOS, tvOS et Mac Catalyst) et Propriétés LinkMode (pour macOS), mais les valeurs de propriétés valides sont différentes (même si la sémantique est la même) :

MtouchLink/LinkMode TrimMode
Plein complet
SdkOnly partiel
Aucun copier

À l’avenir, les propriétés MtouchLink et LinkMode seront déconseillées, utilisez TrimMode à la place.

Le mode de découpage par défaut dépend de nombreux facteurs et peut également changer à l’avenir.

Les valeurs par défaut actuelles (à partir de .NET 9) sont les suivantes :

  • iOS : partial lors de la compilation pour l’appareil, copy lors de la compilation pour le simulateur.
  • macOS : toujours copy.
  • Mac Catalyst : partial lors de la génération de la configuration "Release", copy sinon.

Exceptions :

  • La valeur par défaut est toujours full lors de la génération avec NativeAOT.
  • MAUI modifie la valeur par défaut en copy lors de la génération de la configuration de Debuget l’interpréteur est activé à l’aide de UseInterpreter (ce que MAUI active également par défaut lors de l’utilisation de la configuration "Debug").

Remarque

Le mode de découpage par défaut peut changer à l’avenir.

tvOSMinimumVersion

Spécifie la version minimale de tvOS sur laquelle l’application peut s’exécuter.

Applicable à tvOS ; la définition de cette valeur définit SupportedOSPlatformVersion pour les projets tvOS (uniquement).

UseFloatingTargetPlatformVersion

Propriété booléenne qui contrôle si les projets de bibliothèque doivent utiliser une version de plateforme cible flottante ou la version de plateforme la plus ancienne disponible.

Par défaut (à partir de .NET 10), les projets de bibliothèque sans explicite TargetPlatformVersion utilisent les assemblys de référence disponibles les plus anciens pour la version actuelle de .NET. Cela garantit une compatibilité maximale et permet la compilation du code de bibliothèque sur la surface d’API minimale disponible pour l’infrastructure cible.

Toutefois, ce comportement par défaut signifie que les projets de bibliothèque sont générés différemment des projets exécutables (qui utilisent la dernière version de la plateforme). Le code qui fonctionne dans un projet exécutable peut ne pas être compilé lorsqu’il est déplacé vers un projet de bibliothèque s’il utilise des API disponibles uniquement dans les versions de plateforme plus récentes.

La définition de cette propriété pour true désactiver la sélection automatique de la version la plus ancienne de la plateforme, ce qui permet au projet de bibliothèque d’utiliser la version de plateforme par défaut (la plus récente), comme les projets exécutables.

Exemple:

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

Valeur par défaut : false (utilisez la version de plateforme la plus ancienne pour les projets de bibliothèque dans .NET 10+).

Cette propriété s’applique uniquement aux projets de bibliothèque quiOutputType=Library ne sont pas des extensions d’application et qui n’ont pas spécifié de version de plateforme cible explicite (la version de la plateforme cible est le numéro de version facultatif à la fin de la TargetFramework propriété, par exemple pour TargetFramework net10.0-ios26.0 , la version de la plateforme cible est explicitement 26.0).

Cette propriété a été introduite dans .NET 10.

UseHardenedRuntime

Propriété booléenne qui spécifie si un runtime renforcé est activé.

Applicable aux projets macOS et Mac Catalyst.

UtiliserInterprète

Active l’interpréteur (pour tous les assemblies).

Cela équivaut à définir MtouchInterpreter=all.

Applicable aux applications iOS, tvOS et Mac Catalyst (quand elles n’utilisent pas NativeAOT).

Le comportement par défaut consiste à ne pas activer l’interpréteur.

Remarque

MAUI modifie la valeur par défaut en définissant UseInterpreter=true pour la configuration "Debug".

Pour plus d’informations, consultez MtouchInterpreter.

UseNativeHttpHandler

Indique si le gestionnaire http natif doit être le gestionnaire http par défaut ou non.

Valeur par défaut : true pour toutes les plateformes, à l’exception de macOS.

ValiderLesDroits

Choisissez si les autorisations sollicitées par l'application doivent être validées.

Valeurs valides pour cette propriété :

  • disable: la validation est désactivée.
  • warn: tous les échecs de validation sont affichés en tant qu’avertissements.
  • error: les échecs de validation sont affichés comme des erreurs. Il s’agit de la valeur par défaut.

Le processus de validation peut ne pas valider tous les droits, et il n’est pas garanti qu’il ne soit pas trop long.

Si la validation échoue pour les autorisations qui fonctionnent réellement, signalez un nouveau problème.

ValidateXcodeVersion

Indiquez si la version Xcode actuelle doit être validée.

La valeur par défaut est de valider ; définissez-la à false pour désactiver.

Remarque

L’utilisation d’une version différente de la version recommandée risque de générer des problèmes ultérieurement dans le processus de génération.

XamMacResourcePrefix

Répertoire dans lequel les ressources sont stockées (ce préfixe est supprimé lors de la copie de ressources dans le bundle d’applications).

Applicable aux projets macOS.

Envisagez plutôt d’utiliser la propriété AppBundleResourcePrefix unifiée.

Consultez également IPhoneResourcePrefix et MonoMacResourcePrefix.

ZipPath

Le chemin complet vers l'outil en ligne de commande zip.

Le comportement par défaut consiste à utiliser xcrun zip.