Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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,connect127.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:
- Die AlternateAppIcon-Elementgruppe .
- Die AppIcon-Eigenschaft .
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 diesthrowobjectivecexceptionder 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 diesunwindnativecode, während für CoreCLR diesabortentspricht.
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 diesthrowmanagedexceptionder 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.
MtouchLink
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:
-
truefür iOS und tvOS beim Erstellen des Simulators. -
truefü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:
-
Debugfü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: entwederObjectiveCClass,FunctionoderField. 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-CMyClass_OBJC_CLASS_$_MyClass, während es für eine FunktionMyFunctionnur_MyFunctionist). -
SymbolMode: entwederIgnoreoder nicht festgelegt.Ignorebedeutet, 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:
partialbeim Build für das Gerät,copybeim Build für den Simulator. - macOS: immer
copy. - Mac Catalyst:
partial, wenn die"Release"-Konfiguration erstellt wird, ansonstencopy.
Ausnahmen:
- Der Standardwert wird beim Erstellen mit NativeAOT immer
full. - MAUI ändert den Standardwert
copybeim Erstellen für dieDebugKonfiguration, 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.