Freigeben über


Erstellen von Eigenschaften für iOS, Mac Catalyst, macOS und tvOS

MSBuild-Eigenschaften steuern das Verhalten der Ziele. Sie werden in der Projektdatei angegeben, z. B. "MyApp.csproj", innerhalb einer MSBuild PropertyGroup.

AltoolPath

Der vollständige Pfad zum Tool altool.

Das Standardverhalten besteht darin, xcrun altoolzu verwenden.

AppBundleResourcePrefix

Das Verzeichnis, in dem Ressourcen gespeichert werden (dieses Präfix wird beim Kopieren von Ressourcen in das App-Bündel entfernt).

Wenn diese Eigenschaft nicht explizit festgelegt wird, erbt diese Eigenschaft ihren Wert von den plattformspezifischen Ressourcenpräfixeigenschaften (IPhoneResourcePrefix, MonoMacResourcePrefix oder XamMacResourcePrefix je nach Plattform).

Standard: "Ressourcen"

AppBundleDir

Der Speicherort des erstellten App-Bündels.

AppBundleExtraOptions

Erweiterte Argumente für die Erstellung von App-Bundles.

Die gültigen Argumente hängen von der Plattform ab.

Diese sollten in der Regel nur verwendet werden, wenn sie von einem Microsoft-Ingenieur angegeben wurden.

App-Symbol

Die AppIcon Elementgruppe kann verwendet werden, um ein App-Symbol für die App anzugeben.

Der Wert der Eigenschaft muss auf den Dateinamen einer .appiconset-Bilddatei (für iOS, macOS und Mac Catalyst) oder einer .brandassets-Bilddatei (für tvOS) innerhalb eines Objektkatalogs verweisen.

Beispiel:

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

Siehe auch:

Anwendungsanzeigeversion

Falls festgelegt, gibt den CFBundleShortVersionString-Wert im App-Manifest an (Info.plist).

Dies ist eine Eigenschaft, die .NET "Single Project" unterstützt.

Weitere Informationen finden Sie unter OneDotNetSingleProject .

ApplicationId

Falls festgelegt, gibt den CFBundleIdentifier-Wert im App-Manifest an (Info.plist).

Dies ist eine Eigenschaft, die .NET "Single Project" unterstützt.

Weitere Informationen finden Sie unter OneDotNetSingleProject .

Anwendungstitel

Ist dies festgelegt, wird CFBundleDisplayName im App-Manifest angegeben (Info.plist).

Dies ist eine Eigenschaft, die .NET "Single Project" unterstützt.

Weitere Informationen finden Sie unter OneDotNetSingleProject .

Anwendungsversion

Ist dies festgelegt, wird CFBundleVersion im App-Manifest angegeben (Info.plist).

Dies ist eine Eigenschaft, die .NET "Single Project" unterstützt.

Weitere Informationen finden Sie unter OneDotNetSingleProject .

ArchiveBasePath

Der Speicherort, an dem Archive für einen Remotebuild unter Windows gespeichert werden.

Der Standardwert ist: %LocalAppData%\Xamarin\iOS\Archives

Gilt nur für iOS-Projekte (da nur iOS-Projekte remote von Windows erstellt werden können).

ArchiveOnBuild

Wenn am Ende des Builds ein Xcode-Archiv erstellt werden soll.

BGenEmitDebugInformation

Gibt an, ob das tool bgen (der Bindungsgenerator) Debuginformationen ausgeben soll oder nicht.

Wenn die true-Eigenschaft auf Debugfestgelegt ist, ist das Standardverhalten true.

BGenExtraArgs

Alle zusätzlichen Argumente für das Tool bgen (der Bindungsgenerator).

BGenToolExe

Der Name der ausführbaren Datei bgen (ein Tool, das von Bindungsprojekten zur Generierung von Bindungen verwendet wird).

Das Standardverhalten besteht darin, das mit unserer Workload ausgelieferte bgen Tool zu verwenden.

BGenToolPath

Das Verzeichnis, in dem sich das bgen (BGenToolExe) befindet.

Das Standardverhalten besteht darin, das mit unserer Workload ausgelieferte bgen Tool zu verwenden.

BuildIpa

Wenn ein Paket (IPA) für das App-Bündel am Ende des Builds erstellt werden soll.

Gilt nur für iOS- und tvOS-Projekte.

Siehe CreatePackage für macOS- und Mac Catalyst-Projekte.

BundleCreateDump

CoreCLR verfügt über ein Befehlszeilen-Dienstprogramm namens createdump, um Speicherabbilder zu erstellen, wenn der Prozess abstürzt. macOS erstellt automatisch Absturzberichte für alle App Store-Apps und stellt sie für den App-Entwickler zur Verfügung, daher ist das createdump Tool für viele macOS-Apps nicht hilfreich und ist daher standardmäßig nicht in Apps enthalten.

Dies kann durch Festlegen der BundleCreateDump Eigenschaft außer Kraft gesetzt werden:

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

Hinweis: Das createdump Tool funktioniert derzeit nicht für Sandkasten-Apps (#18961);

Gilt nur für Projekte, die die CoreCLR-Laufzeit verwenden (die derzeit nur macOS-Projekte sind).

BundleOriginalResources

Diese Eigenschaft bestimmt, ob Ressourcen kompiliert werden, bevor sie in Bibliotheksprojekte eingebettet werden, oder ob die ursprüngliche (nicht kompilierte) Version eingebettet ist.

Historisch gesehen wurden Ressourcen zusammengefasst, bevor sie in Bibliotheksprojekte eingebettet wurden, aber dafür muss Xcode verfügbar sein, was einige Nachteile hat.

  • Es verlangsamt Remote-Builds unter Windows.
  • Es funktioniert nicht, wenn sie lokal unter Windows erstellt wird, und nicht auf einer anderen Plattform mit Ausnahme von macOS.
  • Ressourcen werden mit dem aktuellen verfügbaren Xcode kompiliert, der möglicherweise nicht die gleichen Features wie ein potenziell neuerer Xcode zur Verfügung stellt, wenn die betreffende Bibliothek verbraucht wird.
  • Es macht es unmöglich, beim Erstellen einer App alle Ressourcen im Blick zu behalten, was notwendig ist, um widersprüchliche Ressourcen zu erkennen.

Daher haben wir die Unterstützung für das Einbetten der ursprünglichen Ressourcen in Bibliotheken hinzugefügt. Dies wird in .NET 9 optional sein, aber ab .NET 10 deaktiviert.

Der Standardwert dieser Eigenschaft false in .NET 9 und true .NET 10+.

Anmerkung

Geben Sie ein Problem an, wenn Sie feststellen, dass Sie dieses Feature deaktivieren müssen, da es möglich ist, dass die Option zum Deaktivieren in Zukunft entfernt wird.

GemeinsamEntwerfenZuteilen

Der Pfad zum codesign_allocate Tool.

Dieser Wert wird standardmäßig automatisch erkannt.

CodesignConfigureDependsOn

Dies ist ein Erweiterungspunkt für den Build: Ein Entwickler kann dieser Eigenschaft alle Ziele hinzufügen, um diese Ziele auszuführen, bevor der Build eine der codesigning-Eigenschaften untersucht.

Dies kann z. B. zum Deaktivieren der Codesignatur für Simulatorbuilds verwendet werden:

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

CodesignDependsOn

Dies ist ein Erweiterungspunkt für den Build: Ein Entwickler kann dieser Eigenschaft alle Ziele hinzufügen, um diese Ziele auszuführen, bevor das App-Bündel signiert wird.

Beispiel:

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

CodesignEntitlements

Der Pfad zur Berechtigungsdatei, die die von der App benötigten Berechtigungen angibt.

In der Regel "Entitlements.plist".

Dies wird automatisch auf "Entitlements.plist" festgelegt, wenn eine solche Datei im Stammverzeichnis des Projekts vorhanden ist.

Dies kann verhindert werden, indem die EnableDefaultCodesignEntitlements-Eigenschaft auf false gesetzt wird.

CodesignExtraArgs

Zusätzliche Argumente, die beim Signieren des App-Bündels an das "Codesign"-Tool übergeben werden.

CodesignKey

Gibt den Codesignaturschlüssel an, der beim Signieren des App-Bündels verwendet werden soll.

CodesignKeychain

Der Schlüsselbund (Keychain), der während der Codesignierung verwendet werden soll.

Code-Signatur-Schlüssel

Gibt den Codesignaturschlüssel an, der beim Signieren des App-Bündels verwendet werden soll.

Gilt nur für macOS- und Mac Catalyst-Apps, es wird jedoch empfohlen, stattdessen die CodesignKey-Eigenschaft zu verwenden (die auf allen Plattformen funktioniert).

CodesignProvision

Gibt das Bereitstellungsprofil an, das beim Signieren des Anwendungspakets verwendet werden soll.

CodesignResourceRules

Der Pfad zur Datei ResourceRules.plist, die in das Anwendungspaket kopiert werden soll.

CodesignAnforderungBereitstellungsprofil

Gibt an, ob beim Signieren des App-Bündels ein Bereitstellungsprofil erforderlich ist.

Standardmäßig ist ein Bereitstellungsprofil erforderlich, wenn:

  • macOS, Mac Catalyst: Ein Bereitstellungsprofil wurde angegeben (mit der CodesignProvision-Eigenschaft ).
  • iOS, tvOS: Gebäude für Gerät oder eine Berechtigungsdatei wurde angegeben (mit der Eigenschaft CodesignEntitlements).

Das Festlegen dieser Eigenschaft auf true oder false wird die Standardlogik außer Kraft setzen.

CompressBindingResourcePackage

Die nativen Verweise in Bindungsprojekten werden während des Build-Vorgangs in das Ausgabeverzeichnis neben die Bindungsassembly kopiert (in etwas, das wir als "Bindungsressourcenpaket" bezeichnen).

Diese nativen Verweise können entweder in einer ZIP-Datei (benannt $(AssemblyName).resources.zipoder as-is) in einem Verzeichnis mit dem Namen $(AssemblyName).resourcesgespeichert werden.

Die CompressBindingResourcePackage Eigenschaft gibt an, ob eine ZIP-Datei oder ein Verzeichnis erstellt werden soll.

Mögliche Werte sind:

  • auto: Entscheiden Sie automatisch die beste Option (derzeit wird immer eine ZIP-Datei erstellt, aber sobald Visual Studio lange Pfade unter Windows unterstützt, kann dies nur zu ZIP-Bindungsressourcenpaketen mit Symlinks wechseln).
  • true: Erstellen einer ZIP-Datei
  • false: Erstellen eines Verzeichnisses

Der Standardwert lautet auto.

Dies gilt auch für die Speicherung systemeigener Verweise in NuGets.

Anmerkung

In einigen Fällen kann es vorteilhaft sein, auch eine ZIP-Datei unter iOS zu erzwingen, insbesondere wenn ein Framework mit Dateien mit langen Namen vorhanden ist, da die ZIP-Datei manchmal MAX_PATH Probleme unter Windows umgehen kann.

ErstelleAppBundleAbhängtVon

Dies ist ein Erweiterungspunkt für den Build: Ein Entwickler kann diesem Element beliebige Ziele hinzufügen, um sie bei der Erstellung des Anwendungspakets auszuführen.

Beispiel:

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

CreateIpaDependsOn

Dies ist ein Erweiterungspunkt für den Build: Ein Entwickler kann dieser Eigenschaft alle Ziele hinzufügen, um diese Ziele beim Erstellen einer IPA auszuführen.

Gilt für alle Plattformen, die IPA-Archive erstellen (derzeit iOS und tvOS).

Beispiel:

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

PaketErstellen

Wenn ein Paket (.pkg) für das App-Bündel am Ende des Builds erstellt werden soll.

Gilt nur für macOS- und Mac Catalyst-Projekte.

Siehe BuildIpa für iOS- und tvOS-Projekte.

GerätespezifischeBau

Wenn der Build für das ausgewählte Gerät spezifisch sein soll.

Gilt für alle Plattformen, die gerätespezifische Builds unterstützen (derzeit iOS und tvOS).

GerätespezifischerZwischen-Ausgabepfad

Der Zwischenausgabepfad, der verwendet werden soll, wenn gerätespezifische Builds aktiviert sind.

Gilt für alle Plattformen, die gerätespezifische Builds unterstützen (derzeit iOS und tvOS).

GerätespezifischerAusgabepfad

Der Ausgabepfad, der verwendet werden soll, wenn gerätespezifische Builds aktiviert sind.

Gilt für alle Plattformen, die gerätespezifische Builds unterstützen (derzeit iOS und tvOS).

DiagnosticAddress

Die IP-Adresse, an der dotnet-dsrouter ausgeführt wird. Dies tritt typischerweise 127.0.0.1 beim Profilieren im Simulator auf und die IP-Adresse des Computers beim Profilieren auf einem Gerät.

Dies ist die IP-Adresskomponente von DiagnosticConfiguration'.

Legt EnableDiagnostics implizit auf true.

Wird standardmäßig auf 127.0.0.1 festgelegt.

DiagnoseKonfiguration

Ein von dotnet-dsrouter für DOTNET_DiagnosticPorts bereitgestellter Wert, wie zum Beispiel:

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

Beachten Sie, dass das ,-Zeichen mit %2c maskiert werden muss, wenn es in der Befehlszeile an dotnet build übergeben wird.

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

Dadurch wird die DOTNET_DiagnosticPorts Umgebungsvariable automatisch festgelegt, die innerhalb der Anwendung verpackt ist, sodass die Umgebungsvariable beim Starten der App festgelegt wird.

Legt EnableDiagnostics implizit auf true.

Das Standardverhalten besteht darin, diesen Wert aus den anderen Diagnoseeigenschaften (DiagnosticAddress, DiagnosticPort, DiagnosticListenMode und DiagnosticSuspend) zu berechnen.

Bei Festlegung wird eine der anderen Diagnoseeigenschaften ignoriert.

DiagnosticListenMode

Ein von dotnet-dsrouter bereitgestellter Wert, wie z. B. connect oder listen, die Komponente des Überwachungsmodus aus DiagnosticConfiguration.

Legt EnableDiagnostics implizit auf true.

Wird standardmäßig auf listen festgelegt.

DiagnosticPort

Ein von dotnet-dsrouter bereitgestellter Wert, wie 9000, die Portkomponente von DiagnosticConfiguration.

Legt EnableDiagnostics implizit auf true.

Wird standardmäßig auf 9000 festgelegt.

DiagnosticSuspend

Ein Wert, der das Startverhalten beim Profilieren einer Anwendung angibt.

Legen Sie true fest, um die App beim Start anzuhalten (während auf den Diagnoseserver gewartet wird, um die Verbindung herzustellen) oder false, um die App wie gewohnt zu starten (und den Diagnoseserver später mit der App zu verbinden).

Dies entspricht dem suspend/nosuspend Wert in DiagnosticConfiguration'.

Legt EnableDiagnostics implizit auf true.

Wird standardmäßig auf false festgelegt.

DittoPath

Der vollständige Pfad zur ditto ausführbaren Datei.

Das Standardverhalten besteht darin, /usr/bin/dittozu verwenden.

Einbinden von Ressourcen bei Bedarf

Wenn On-Demand-Ressourcen in das App-Bündel eingebettet werden sollen.

Voreinstellung: true

CodeSigningAktivieren

Wenn die Codesignatur aktiviert ist.

Die Codesignatur ist standardmäßig für alle Plattformen aktiviert; dies kann mit dieser Eigenschaft deaktiviert werden.

AktivierenSieDieStandardcodesignBerechtigungen

Siehe CodesignEntitlements.

Bedarfsgesteuerte Ressourcen aktivieren

Wenn On-Demand-Ressourcen aktiviert sind.

Standard: false für macOS, true für alle anderen Plattformen.

Paket-Signierung aktivieren

Wenn die erstellte .pkg (falls CreatePackage aktiviert war) signiert werden soll.

Gilt nur für macOS und Mac Catalyst.

Diagnose aktivieren

Aktivieren Sie Komponenten, die für die Diagnose (z. B. Profilerstellung) erforderlich sind, um zu funktionieren.

Sie ist standardmäßig für Debug-Builds aktiviert (wenn MtouchDebug oder MmpDebug aktiviert ist), muss jedoch manuell aktiviert werden, bevor das Profiling von Release-Builds durchgeführt wird.

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

Dadurch wird die App-Größe geringfügig erhöht.

Gilt nur bei Verwendung der Mono-Laufzeit (CoreCLR unterstützt immer Diagnosen, während NativeAOT nie funktioniert).

AktivierenSGenConc

Aktiviert den gleichzeitig arbeitenden Modus für den SGen-Speicherbereiniger.

Gilt nur für iOS, tvOS und Mac Catalyst (wenn nicht NativeAOT verwendet wird).

EventSourceSupport

Wenn auf false festgelegt, deaktiviert .NET die EventSource-Unterstützung in gekürzten Anwendungen. Durch das Deaktivieren dieses Features würden .NET-Diagnosetools wie dotnet-counters nicht funktionieren, was jedoch den Vorteil einer reduzierten Anwendungsgröße bietet.

Standard: Wird auf false gesetzt, wenn Optimize auf true gesetzt wird (dies ist die Standardeinstellung für Release Builds), es sei denn, $(EnableDiagnostics) ist aktiviert.

Anwendungsmanifest generieren

Wenn ein Anwendungsmanifest (Info.plist) generiert werden soll.

Voreinstellung: true

GeneratedSourcesDir (GenerierteQuellenVerzeichnis)

Wo die generierte Quelle aus dem Generator gespeichert wird.

AlleAppSymboleEinbeziehen

Legen Sie die eigenschaft IncludeAllAppIcons auf "true" fest, um automatisch alle App-Symbole aus allen Objektkatalogen in die App einzuschließen.

Beispiel:

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

Siehe auch:

iOSMindestversion

Gibt die mindeste iOS-Version an, auf der die App ausgeführt werden kann.

Gilt für iOS; durch Festlegen dieses Werts wird SupportedOSPlatformVersion für iOS-Projekte (nur) festgelegt.

IPhoneResourcePrefix

Das Verzeichnis, in dem Ressourcen gespeichert werden (dieses Präfix wird beim Kopieren von Ressourcen in das App-Bündel entfernt).

Gilt für iOS-, tvOS- und Mac Catalyst-Projekte.

Erwägen Sie stattdessen die Verwendung der einheitlichen AppBundleResourcePrefix-Eigenschaft .

Siehe auch MonoMacResourcePrefix und XamMacResourcePrefix.

IpaIncludeArtwork

Wenn Kunstwerke in die IPA aufgenommen werden sollen.

Gilt nur für iOS- und tvOS-Projekte.

IpaPackageName

Gibt den Namen der resultierenden IPA-Datei (ohne Pfad) beim Erstellen eines IPA-Pakets an (siehe BuildIpa). IpaPackagePath überschreibt diesen Wert.

Gilt nur für iOS- und tvOS-Projekte.

IpaPackageDir

Gibt das Verzeichnis der resultierenden IPA-Datei beim Erstellen eines IPA-Pakets an (siehe BuildIpa). IpaPackagePath überschreibt diesen Wert.

Gilt nur für iOS- und tvOS-Projekte.

IpaPackagePath

Gibt den Pfad zur resultierenden IPA-Datei beim Erstellen eines IPA-Pakets an (siehe BuildIpa).

Gilt nur für iOS- und tvOS-Projekte.

IsAppExtension

Wenn es sich bei einem Projekt um eine App-Erweiterung handelt.

IstBindungsProjekt

Wenn es sich bei einem Projekt um ein Bindungsprojekt handelt.

IsXPCService

Wenn es sich bei einer macOS-Erweiterung um einen xpc-Dienst handelt.

Gilt nur für macOS-Projekte.

Verbindungsmodus

Gibt den Verknüpfungsmodus für das Projekt an (None, SdkOnly oder Full).

Gilt für macOS-Projekte, jedoch ist diese Eigenschaft veraltet, verwenden Sie stattdessen TrimMode.

Siehe auch MtouchLink.

Verlinken mit Swift-Systembibliotheken

Wenn der Wert auf truegesetzt ist, teilt der Build dem nativen Linker mit, wo die Systembibliotheken von Swift zu finden sind.

Dies ist nützlich, wenn eine native Bibliothek Swift auf irgendeine Weise verwendet. In diesem Fall muss der native Linker wissen, wo die Swift-Systembibliotheken zu finden sind.

Derzeit bedeutet das, dass diese Argumente an den nativen Linker übergeben werden.

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

Die genaue Gruppe von Argumenten kann sich in Zukunft ändern.

MacCatalyst Mindestversion

Gibt die minimale Mac Catalyst (iOS)-Version an, auf der die App ausgeführt werden kann.

Anwendbar auf Mac Catalyst; durch Festlegen dieses Werts wird SupportedOSPlatformVersion für Mac Catalyst-Projekte (nur) festgelegt.

MaciOSPrepareForBuildDependsOn

Eine durch Semikolons getrennte Eigenschaft, die zum Erweitern des Buildvorgangs verwendet werden kann. MSBuild-Ziele, die dieser Eigenschaft hinzugefügt werden, werden frühzeitig im Build für Anwendungs- und Bibliotheksprojekttypen ausgeführt. Diese Eigenschaft ist standardmäßig leer.

Beispiel:

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

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

Diese Eigenschaft wurde in .NET 9 eingeführt.

macOS-Mindestversion

Gibt die minimale macOS-Version an, auf der die App ausgeführt werden kann.

Gilt für macOS; durch Festlegen dieses Werts wird SupportedOSPlatformVersion für macOS-Projekte (nur) festgelegt.

MacOSXSdkVersion

Die macOS SDK-Version, die für den Build verwendet werden soll.

Standard: Wird automatisch gemäß der Standardversion erkannt, die mit dem ausgewählten Xcode ausgeliefert wurde.

Siehe auch MtouchSdkVersion.

MarshalManagedExceptionMode

Wählen Sie aus, wie verwaltete Ausnahmen behandelt werden, wenn beim Abwickeln des Stapels beim Verarbeiten der verwalteten Ausnahme ein nativer Frame auftritt.

Gültige Werte:

  • default: Derzeit ist dies throwobjectivecexceptionder Fall.
  • unwindnativecode: Dies ist bei Verwendung der CoreCLR-Laufzeit nicht verfügbar.
  • throwobjectivecexception: Erfassen Sie die verwaltete Ausnahme, und konvertieren Sie sie in eine Objective-C-Ausnahme.
  • abort: Abbrechen des Prozesses.
  • disable: Abfangen von verwalteten Ausnahmen deaktivieren. Für MonoVM entspricht dies unwindnativecode, während für CoreCLR dies abort entspricht.

Weitere Informationen finden Sie unter Exception Marshalling und MarshalObjectiveCExceptionMode.

MarshalObjectiveCExceptionMode

Wählen Sie aus, wie Objective-C Ausnahmen behandelt werden, wenn beim Abwickeln des Stapels beim Verarbeiten der Objective-C Ausnahme ein verwalteter Frame auftritt.

Gültige Werte:

  • default: Derzeit ist dies throwmanagedexceptionder Fall.
  • unwindmanagedcode: Dies ist bei Verwendung der CoreCLR-Laufzeit nicht verfügbar.
  • throwmanagedexception: Erfassen Sie die Objective-C Ausnahme, und konvertieren Sie sie in eine verwaltete Ausnahme.
  • abort: Abbrechen des Prozesses.
  • disable: Abfangen jeglicher Objective-C-Ausnahmen deaktivieren.

Weitere Informationen finden Sie unter Exception Marshaling und MarshalManagedExceptionMode.

MdimportPath

Der vollständige Pfad zum Tool mdimport.

Das Standardverhalten besteht darin, xcrun mdimportzu verwenden.

MetalLibPath

Der vollständige Pfad zum tool metallib (Metal Linker).

Das Standardverhalten besteht darin, xcrun metallibzu verwenden.

MetalPath

Der vollständige Pfad zum Metal-Compiler.

Das Standardverhalten besteht darin, xcrun metalzu verwenden.

MetricsSupport

Bei Festlegung auf false deaktiviert dies .NET-Unterstützung für Metriken in gekürzt bereitgestellten Anwendungen. Durch das Deaktivieren dieses Features würden APIs wie System.Diagnostics.Metrics z. B. nicht funktionieren, aber im Vorteil einer reduzierten Anwendungsgröße.

Standard: Auf false setzen, wenn Optimize auf true gesetzt ist (was die Standardeinstellung für Release-Builds ist), es sei denn, $(EnableDiagnostics) ist aktiviert.

MmpDebug

Aktiviert den Debugmodus für die Erstellung von App-Bündeln.

Gilt nur für macOS-Projekte.

Siehe auch MtouchDebug.

MobilAggressivesAttributBeschneiden

Diese Eigenschaft bestimmt, ob zahlreiche Attribute, die zur Laufzeit sehr selten benötigt werden, entfernt werden sollen.

Diese Einstellung ist standardmäßig aktiviert.

Beachten Sie, dass die entfernten Attribute zwar sehr selten verwendet werden, aber technisch möglich ist, dass das Entfernen das Laufzeitverhalten ändern kann.

System.Xml.Serialization verhält sich z. B. anders, wenn ein Konstruktor über das [Obsolete] Attribut verfügt (eines der Attribute, die entfernt werden). Das Risiko ist gering genug, um das Entfernen dieser Attribute wegen der Größeneinsparung standardmäßig zu rechtfertigen.

Die Liste der Attribute, die entfernt werden, kann sich in Zukunft ändern, aber zum Zeitpunkt dieses Schreibvorgangs (für .NET 10) sind dies die Attribute:

  • 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

Diese Eigenschaft wurde in .NET 10 eingeführt.

MonoBundlingExtraArgs

Zusätzliche Argumente, die angeben, wie das App-Bündel erstellt werden soll.

Gilt nur für macOS-Projekte.

Diese Eigenschaft ist veraltet, verwenden Sie stattdessen "AppBundleExtraOptions" .

MonoMacResourcePrefix

Das Verzeichnis, in dem Ressourcen gespeichert werden (dieses Präfix wird beim Kopieren von Ressourcen in das App-Bündel entfernt).

Gilt nur für macOS-Projekte.

Erwägen Sie stattdessen die Verwendung der einheitlichen AppBundleResourcePrefix-Eigenschaft .

Siehe auch IPhoneResourcePrefix und XamMacResourcePrefix.

MonoUseCompressedInterfaceBitmap

Dadurch wird die Mono-Runtime angewiesen, eine komprimierte Version von Schnittstellen-Bitmaps zu verwenden (Schnittstellen-Bitmaps werden verwendet, um zu bestimmen, ob ein bestimmter Typ eine bestimmte Schnittstelle implementiert).

Diese Bitmaps können zur Laufzeit einen erheblichen Arbeitsspeicher verwenden, insbesondere für Apps mit einer erheblichen Anzahl von Schnittstellen.

Diese Einstellung ist standardmäßig deaktiviert, kann aber wie folgt aktiviert werden, wodurch der zur Laufzeit verwendete Arbeitsspeicher verringert wird:

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

Der Nachteil ist, dass die Typprüfungen (obj is SomeInterface) langsamer sind.

Gilt nur bei Verwendung des Mono Runtime.

MtouchDebug

Aktiviert den Debugmodus für die Erstellung von App-Bündeln.

Gilt für iOS-, tvOS- und Mac Catalyst-Projekte.

Siehe auch MmpDebug.

MtouchEnableSGenConc

Aktiviert den gleichzeitig arbeitenden Modus für den SGen-Speicherbereiniger.

Gilt nur für iOS, tvOS und Mac Catalyst, wenn nicht NativeAOT verwendet wird.

Diese Eigenschaft ist veraltet, verwenden Sie stattdessen EnableSGenConc .

MtouchExtraArgs

Zusätzliche Argumente, die angeben, wie das App-Bündel erstellt werden soll.

Gilt nur für iOS-, tvOS- und Mac Catalyst-Projekte.

Diese Eigenschaft ist veraltet, verwenden Sie stattdessen "AppBundleExtraOptions" .

MtouchInterpreter

Aktiviert den Interpreter und optional kann eine durch Kommas getrennte Liste von Assemblies zur Interpretation angegeben werden. Wenn einem Assembly ein Minuszeichen vorangestellt ist, wird das Assembly stattdessen AOT-kompiliert. "all" kann verwendet werden, um alle Assemblys anzugeben. Dieses Argument kann mehrmals angegeben werden.

Beispiel:

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

Eine Abkürzung für die MtouchInterpreter ist das Setzen von UseInterpreter=true, was MtouchInterpreter=allentspricht.

Wenn sowohl UseInterpreter als auch MtouchInterpreter festgelegt sind, hat MtouchInterpreter Vorrang.

Gilt für iOS-, tvOS- und Mac Catalyst-Apps (wenn nicht NativeAOT verwendet wird).

Das Standardverhalten besteht darin, den Dolmetscher nicht zu aktivieren.

Anmerkung

MAUI ändert die Standardeinstellung, indem es UseInterpreter=true für die Konfiguration "Debug" festlegt.

Gibt den Verknüpfungsmodus für das Projekt an (None, SdkOnly, Full).

Gilt für iOS-, tvOS- und Mac Catalyst-Projekte, aber diese Eigenschaft ist veraltet, verwenden Sie stattdessen TrimMode .

Siehe auch LinkMode.

MtouchSdkVersion

Die für den Build zu verwendende iOS- oder tvOS SDK-Version.

Standard: Wird automatisch gemäß der Standardversion erkannt, die mit dem ausgewählten Xcode ausgeliefert wurde.

Siehe auch MacOSXSdkVersion.

MtouchUseLlvm

Eine boolesche Eigenschaft, die angibt, ob die AOT-Kompilierung mithilfe von LLVM erfolgen soll.

Gilt für iOS-, tvOS- und Mac Catalyst-Projekte.

Vorgabe:

  • Unter iOS und tvOS: für Release-Builds aktiviert (wo Configuration="Release").
  • Auf Mac Catalyst: Standardmäßig nie aktiviert.

KeinBindendesEinbetten

Eine boolesche Eigenschaft, die angibt, ob systemeigene Bibliotheken in Binding-Projekten in die verwaltete Assembly eingebunden oder in einem .resources-Verzeichnis neben der verwalteten Assembly abgelegt werden sollen.

Der Standardwert lautet true (was bedeutet, dass systemeigene Bibliotheken nicht in die verwaltete Assembly eingebettet werden).

Anmerkung

Xcframeworks funktioniert nicht ordnungsgemäß, wenn sie in die verwaltete Assembly eingebettet ist (wenn diese Eigenschaft nicht trueist).

NoDSymUtil

Eine boolesche Eigenschaft, die angibt, ob die .dSYM-Generierung deaktiviert werden soll.

Vorgabe:

  • true für iOS und tvOS beim Erstellen des Simulators.
  • true für macOS und Mac Catalyst, es sei denn, es wird ein Archiv erstellt (ArchiveOnBuild=true)

Dies bedeutet, dass das DSYM-Archiv in den folgenden Fällen generiert wird (standardmäßig):

  • Unter iOS und tvOS beim Erstellen für Das Gerät.
  • Beim Erstellen eines Archivs unter macOS und Mac Catalyst (ArchiveOnBuild=true).

NoSymbolStrip

Eine boolesche Eigenschaft, die angibt, ob Debugsymbole zur Erstellungszeit aus der App entfernt werden.

Das Standardverhalten besteht darin, Debugsymbole beizubehalten für:

  • Debug für Desktop-Plattformen erstellt.
  • Simulator-Builds für mobile Plattformen.

Beispiel zum Beibehalten von Debugsymbolen:

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

OnDemandResourcesInitialInstallTags

Eine Zeichenfolgeneigenschaft, die die anfänglichen Installationstags für On-Demand-Ressourcen angibt.

OnDemandResourcesPrefetchOrder

Eine String-Eigenschaft, die die Vorabruf-Reihenfolge für On-Demand-Ressourcen angibt.

OnDemandResourcesUrl

Eine Zeichenfolgeneigenschaft, die die Ressourcen-URL für On-Demand-Ressourcen angibt.

PNGs optimieren

Eine boolesche Eigenschaft, die angibt, ob PNG-Bilder optimiert werden sollen.

OptimierungVonPngBildernHängtAbVon

Dies ist ein Erweiterungspunkt für den Build: Ein Entwickler kann dieser Eigenschaft beliebige Ziele hinzufügen, um diese auszuführen, bevor PNG-Bilder optimiert werden.

Beispiel:

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

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

EigenschaftslistenOptimieren

Eine boolesche Eigenschaft, die angibt, ob Eigenschaftenlisten (Plists) optimiert werden sollen.

OptimierenVonAbhängigkeitslistenFürEigenschaften

Dies ist ein Erweiterungspunkt für den Build: Ein Entwickler kann dieser Eigenschaft beliebige Ziele hinzufügen, um diese Ziele auszuführen, bevor Eigenschaftenlisten (Plists) optimiert werden.

Beispiel:

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

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

Paket-Signaturschlüssel

Gibt den Codesignaturschlüssel an, um das Paket beim Erstellen von .pkg für ein macOS- und Mac Catalyst-Projekt zu signieren.

Gilt nur für macOS- und Mac Catalyst-Apps.

PackagingExtraArgs

Gibt alle zusätzlichen Argumente an, die beim Erstellen von .pkg für ein macOS- und Mac Catalyst-Projekt an das Tool "productbuild" übergeben werden sollen.

Gilt nur für macOS- und Mac Catalyst-Apps.

PkgPackagePath

Gibt den Pfad zur resultierenden .pkg Datei beim Erstellen eines Pakets an (siehe CreatePackage).

Gilt nur für macOS- und Mac Catalyst-Apps.

PlutilPath

Der vollständige Pfad zum plutil Befehlszeilentool.

Das Standardverhalten besteht darin, xcrun plutilzu verwenden.

PngCrushPath

Der vollständige Pfad zum pngcrush Befehlszeilentool.

Das Standardverhalten besteht darin, xcrun pngcrushzu verwenden.

ProcessEnums

Eine boolesche Eigenschaft, die angibt, ob Enumerationen als API-Definition in Bindungsprojekten verarbeitet werden sollen.

ProductBuildPath

Der vollständige Pfad zum Tool productbuild.

Das Standardverhalten besteht darin, xcrun productbuildzu verwenden.

Produktdefinition

Die Produktdefinitionsvorlage (.plist), die beim Erstellen der Produktdefinition zum Übergeben an das Produktbuildtool beim Erstellen von Paketen (.pkg) verwendet werden soll.

Gilt nur für macOS- und Mac Catalyst-Apps.

ReferenzNativesymbol

Die Elementgruppe ReferenceNativeSymbol kann verwendet werden, um anzugeben, wie ein bestimmtes systemeigenes Symbol behandelt werden soll: entweder ignorieren oder den systemeigenen Linker auffordern, es beizubehalten (indem das Symbol als -u ... oder in einer Symboldatei an den systemeigenen Linker übergeben wird).

Es gibt zwei unterstützte Metadatentypen:

  • SymbolType: entweder ObjectiveCClass, Function oder Field. Wird verwendet, um den vollständigen ursprünglichen Namen eines Symbols zu berechnen (zum Beispiel ist das ursprüngliche Symbol für die Klasse Objective-C MyClass_OBJC_CLASS_$_MyClass, während es für eine Funktion MyFunction nur _MyFunctionist).
  • SymbolMode: entweder Ignore oder nicht festgelegt. Ignore bedeutet, dass das angegebene Symbol nicht an den systemeigenen Linker übergeben wird; der Standard ist jedoch, dies zu tun.

SymbolType ist erforderlich, während SymbolMode nicht erforderlich ist.

Beispielsymbol, das beibehalten werden soll:

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

Beispielsymbol, das ignoriert werden soll:

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

Erfordern Link mit Attribut für ObjectiveC-Klassensuche

** Wir werden automatisch alle Bibliotheken nach verwalteten Klassen scannen, die vorhandenen Objective-C-Klassen zugeordnet sind, und dann zur Erstellungszeit einen nativen Verweis für diese Objective-C-Klassen erstellen.

Auf diese Weise entfernt der systemeigene Linker diese Objective-C Klassen nicht, da er fälschlicherweise annimmt, dass sie nicht verwendet werden.

Dies kann jedoch zu einem Problem führen, wenn eine verwaltete Klasse auf eine Objective-C Klasse verweist, die nicht vorhanden ist. Die richtige Lösung hierfür besteht darin, solche verwalteten Klassen aus dem Build zu entfernen, dies kann jedoch umständlich sein, insbesondere, wenn die verwaltete Klasse aus einem binären Verweis (z. B. NuGet) stammt.

In diesen Fällen ist es möglich, die Eigenschaft RequireLinkWithAttributeForObjectiveCClassSearch auf true festzulegen, damit nur Bibliotheken mit dem Attribut [LinkWith] für Objective-C Klassen gescannt werden:

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

RunWithOpen

Diese Eigenschaft bestimmt, ob Apps mit dem open Befehl unter macOS gestartet werden oder ob die ausführbare Datei der App direkt ausgeführt wird.

Dies gilt nur für macOS- und Mac Catalyst-Apps.

Der Standardwert ist true. In diesem Modus wird die App von macOS als jede andere UI-Anwendung gestartet, jede stdout/stderr-Ausgabe wird von macOS verschluckt, und der dotnet run Befehl wird beendet, sobald die App gestartet wurde.

Bei Festlegung auf false wird jede stdout/stderr-Ausgabe auf das aktuelle Terminal gedruckt, und der dotnet run-Befehl wird nicht abgeschlossen, bis die App beendet wird.

Die folgenden Eigenschaften können verwendet werden, um das Verhalten zu konfigurieren, wenn es auf true festgelegt ist (d. h. durch die Verwendung des open Befehls):

NeueInstanzÖffnen

Wenn eine neue Instanz geöffnet wird, wenn die App bereits ausgeführt wird (Standardwert ist false).

Dies wird -n an open übergeben, wenn es auf true gesetzt ist.

Beispiel:

$ dotnet run -p:OpenNewInstance=false

OpenArguments

Diese Eigenschaft kann verwendet werden, um zusätzliche Argumente an den open Befehl zu übergeben.

Beispiel (zum Festlegen von Umgebungsvariablen):

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

Beispiel (zum Umleiten von Stdout und Stderr zu einer Datei):

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

Führen Sie man open aus, um eine Liste aller akzeptierten Optionen von open anzuzeigen.

Standard-Ausgabepfad

Diese Eigenschaft kann verwendet werden, um die Stdout-Ausgabe von der App an eine Datei umzuleiten.

Beispiel für das Schreiben in eine Datei:

$ dotnet run -p:StandardOutputPath=stdout.txt

Beispiel für das Schreiben in das aktuelle Terminal:

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

Hinweis: Dies kann auch erreicht werden, indem --stdout ... über die OpenArguments-Eigenschaft übergeben wird.

Standardfehlerpfad

Diese Eigenschaft kann verwendet werden, um die Stderr-Ausgabe von der App an eine Datei umzuleiten.

Beispiel für das Schreiben in eine Datei:

$ dotnet run -p:StandardErrorPath=stderr.txt

Beispiel für das Schreiben in das aktuelle Terminal:

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

Hinweis: Dies kann auch durch Übergeben von --stderr ... unter Verwendung der OpenArguments-Eigenschaft erreicht werden.

StandardInputPath

Diese Eigenschaft kann verwendet werden, um die Stdin-Eingabe von einer Datei an die App umzuleiten.

Beispiel:

$ dotnet run -p:StandardInputPath=stdin.txt

Hinweis: Dies kann auch erreicht werden, indem --stdin ... über die OpenArguments-Eigenschaft übergeben wird.

SdkIsSimulator

Diese Eigenschaft ist eine schreibgeschützte Eigenschaft (das Setzen hat keine Auswirkung), die angibt, ob wir für einen Simulator entwickeln oder nicht.

Sie wird erst festgelegt, nachdem Importe und Eigenschaften ausgewertet wurden. Dies bedeutet, dass die Eigenschaft beim Auswerten der Eigenschaften in der Projektdatei nicht festgelegt ist, sodass dies nicht funktioniert:

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

Jedoch funktioniert entweder der folgende:

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

Hinweis: Diese Eigenschaft hat unter macOS und Mac Catalyst immer den Wert false.

Pfad entfernen

Der vollständige Pfad zum strip Befehlszeilentool.

Das Standardverhalten besteht darin, xcrun stripzu verwenden.

UnterstützteBetriebssystemplattformVersion (SupportedOSPlatformVersion)

Gibt die Mindestversion des Betriebssystems an, auf der die App ausgeführt werden kann.

Es ist auch möglich, eine plattformspezifische Eigenschaft zu verwenden:

TrimMode

Gibt die Granularität des Kürzens an.

Die gültigen Optionen sind:

  • full: Trimmen Sie jede Montage.
  • partial: Assemblys, die für das Trimmen konfiguriert wurden.
  • copy: Trimmen Sie keine Baugruppen.

Weitere Informationen zur Eigenschaft finden Sie unter TrimMode.

Anmerkung

Aus technischen Gründen muss der Trimmer für alle iOS-, tvOS-, macOS- und Mac Catalyst-Projekte ausgeführt werden, selbst wenn keine Assemblys gekürzt werden sollen. Aus diesem Grund ist es nicht zulässig, das Kürzen zu deaktivieren, indem PublishTrimmed auf false gesetzt wird - um das Kürzen zu deaktivieren, setzen Sie stattdessen TrimMode=copy (ein Buildfehler wird ausgelöst, wenn PublishTrimmed auf false gesetzt ist).

Die TrimMode Eigenschaft entspricht den vorhandenen MtouchLink-Eigenschaften (für iOS, tvOS und Mac Catalyst) und LinkMode (für macOS), aber die gültigen Eigenschaftenwerte sind unterschiedlich (auch wenn die Semantik identisch ist):

MtouchLink/LinkMode TrimMode
Voll voll
SdkOnly teilweise
Nichts kopieren

In Zukunft werden die Eigenschaften MtouchLink und LinkMode abgeschafft, verwenden Sie stattdessen TrimMode.

Der Standardkürzungsmodus hängt von zahlreichen Faktoren ab und kann sich auch in Zukunft ändern.

Die aktuellen Standardwerte (ab .NET 9) sind:

  • iOS: partial beim Build für das Gerät, copy beim Build für den Simulator.
  • macOS: immer copy.
  • Mac Catalyst: partial, wenn die "Release"-Konfiguration erstellt wird, ansonsten copy.

Ausnahmen:

  • Der Standardwert wird beim Erstellen mit NativeAOT immer full.
  • MAUI ändert den Standardwert copy beim Erstellen für die Debug Konfiguration, und der Dolmetscher wird mithilfe von UseInterpreter aktiviert (was MAUI auch bei Verwendung der "Debug" Konfiguration standardmäßig aktiviert).

Anmerkung

Der Standardkürzungsmodus kann sich in der Zukunft ändern.

tvOS-Mindestversion

Gibt die mindeste tvOS-Version an, auf der die App ausgeführt werden kann.

Anwendbar auf tvOS; durch Festlegen dieses Werts wird SupportedOSPlatformVersion für tvOS-Projekte (nur) festgelegt.

UseFloatingTargetPlatformVersion

Eine boolesche Eigenschaft, die steuert, ob Bibliotheksprojekte eine unverankerte Zielplattformversion oder die älteste verfügbare Plattformversion verwenden sollen.

Standardmäßig (ab .NET 10) verwenden Bibliotheksprojekte ohne explizite Angabe TargetPlatformVersion die ältesten verfügbaren Referenzassemblys für die aktuelle .NET-Version. Dadurch wird eine maximale Kompatibilität gewährleistet und der Bibliothekscode kann anhand der für das Zielframework verfügbaren Mindestoberfläche der API kompiliert werden.

Dieses Standardverhalten bedeutet jedoch, dass Bibliotheksprojekte anders erstellt werden als ausführbare Projekte (die die neueste Plattformversion verwenden). Code, der in einem ausführbaren Projekt funktioniert, kann beim Verschieben in ein Bibliotheksprojekt nicht kompiliert werden, wenn es APIs verwendet, die nur in neueren Plattformversionen verfügbar sind.

Durch Festlegen dieser Eigenschaft wird true die automatische Auswahl der ältesten Plattformversion deaktiviert, sodass das Bibliotheksprojekt die standardmäßige (neueste) Plattformversion wie ausführbare Projekte verwenden kann.

Beispiel:

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

Standard: false (verwenden Sie die älteste Plattformversion für Bibliotheksprojekte in .NET 10+).

Diese Eigenschaft gilt nur für Bibliotheksprojekte (OutputType=Library), die keine App-Erweiterungen sind und keine explizite Zielplattformversion angegeben haben (die Zielplattformversion ist die optionale Versionsnummer am Ende der TargetFramework Eigenschaft, z. B. für das TargetFramework net10.0-ios26.0 , die Zielplattformversion ist explizit 26.0).

Diese Eigenschaft wurde in .NET 10 eingeführt.

UseHardenedRuntime

Eine boolesche Eigenschaft, die angibt, ob eine gehärtete Laufzeit aktiviert ist.

Gilt für macOS- und Mac Catalyst-Projekte.

InterpreterVerwenden

Aktiviert den Dolmetscher (für alle Assemblies).

Dies entspricht der Einstellung MtouchInterpreter=all.

Gilt für iOS-, tvOS- und Mac Catalyst-Apps (wenn nicht NativeAOT verwendet wird).

Das Standardverhalten besteht darin, den Dolmetscher nicht zu aktivieren.

Anmerkung

MAUI ändert die Standardeinstellung, indem es UseInterpreter=true für die Konfiguration "Debug" festlegt.

Weitere Informationen finden Sie unter MtouchInterpreter .

UseNativeHttpHandler

Gibt an, ob der native HTTP-Handler der Standard-HTTP-Handler sein soll.

Standard: true für alle Plattformen mit Ausnahme von macOS.

BerechtigungenÜberprüfen

Wählen Sie aus, ob die von der App angeforderten Berechtigungen überprüft werden sollen.

Gültige Werte für diese Eigenschaft:

  • disable: Die Überprüfung ist deaktiviert.
  • warn: Alle Überprüfungsfehler werden als Warnungen angezeigt.
  • error: Alle Überprüfungsfehler werden als Fehler angezeigt. Dies ist die Standardeinstellung.

Der Überprüfungsprozess überprüft möglicherweise nicht jede Berechtigung, noch ist garantiert, dass er nicht übereifrig ist.

Wenn die Überprüfung bei Berechtigungen fehlschlägt, die tatsächlich funktionieren, geben Sie bitte ein neues Problem ein.

ValidateXcodeVersion

Wählen Sie aus, ob die aktuelle Xcode-Version überprüft werden soll.

Der Standardwert ist die Überprüfung; setzen Sie ihn auf false, um zu deaktivieren.

Anmerkung

Die Verwendung einer anderen Version als die empfohlene Version kann später beim Buildprozess zu Problemen führen.

XamMacResourcePrefix

Das Verzeichnis, in dem Ressourcen gespeichert werden (dieses Präfix wird beim Kopieren von Ressourcen in das App-Bündel entfernt).

Gilt für macOS-Projekte.

Erwägen Sie stattdessen die Verwendung der einheitlichen AppBundleResourcePrefix-Eigenschaft .

Siehe auch IPhoneResourcePrefix und MonoMacResourcePrefix.

ZipPath

Der vollständige Pfad zum zip Befehlszeilentool.

Das Standardverhalten besteht darin, xcrun zipzu verwenden.