Aracılığıyla paylaş


iOS, Mac Catalyst, macOS ve tvOS için derleme özellikleri

MSBuild özellikleri hedeflerin davranışını denetler. Bunlar proje dosyasında( örneğin MyApp.csproj) bir MSBuild PropertyGroup içinde belirtilir.

AltoolPath

altool aracının tam yolu.

Varsayılan davranış kullanmaktır xcrun altool.

AppBundleResourcePrefix

Kaynakların depolandığı dizin (kaynakları uygulama paketine kopyalarken bu ön ek kaldırılır).

Açıkça ayarlanmazsa, bu özellik değerini platforma özgü kaynak ön eki özelliklerinden (platforma bağlı olarak IPhoneResourcePrefix, MonoMacResourcePrefix veya XamMacResourcePrefix ) devralır.

Varsayılan: "Kaynaklar"

AppBundleDir

Yerleşik uygulama paketinin konumu.

AppBundleEkstraSeçenekler

Uygulama paketi oluşturma için gelişmiş ek bağımsız değişkenler.

Geçerli bağımsız değişkenler kümesi platforma bağlıdır.

Bunlar genellikle bir Microsoft mühendisi tarafından belirtilmedikçe kullanılmamalıdır.

Uygulama Simgesi

Öğe AppIcon grubu, uygulama için bir uygulama simgesi belirtmek için kullanılabilir.

özelliğinin değeri, varlık kataloğu içindeki bir .appiconset (iOS, macOS ve Mac Catalyst için) veya .brandassets (tvOS için) görüntü kaynağının dosya adına işaret etmelidir.

Örnek:

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

Ayrıca bkz:

Uygulama Gösterme Sürümü

Ayarlanırsa, uygulama bildirimindeki CFBundleShortVersionString değerini (Info.plist) belirtir.

Bu, .NET "Tek Proje" özelliğini destekleyen bir özelliktir.

Daha fazla bilgi için bkz. OneDotNetSingleProject .

ApplicationId

Ayarlanırsa, uygulama bildirimindeki CFBundleIdentifier değerini (Info.plist) belirtir.

Bu, .NET "Tek Proje" özelliğini destekleyen bir özelliktir.

Daha fazla bilgi için bkz. OneDotNetSingleProject .

Uygulama Başlığı

Ayarlanırsa, uygulama bildiriminde belirtilen CFBundleDisplayName, Info.plist öğesini belirler.

Bu, .NET "Tek Proje" özelliğini destekleyen bir özelliktir.

Daha fazla bilgi için bkz. OneDotNetSingleProject .

Uygulama Sürümü

Ayarlanırsa, uygulama bildiriminde belirtilen CFBundleVersion, Info.plist öğesini belirler.

Bu, .NET "Tek Proje" özelliğini destekleyen bir özelliktir.

Daha fazla bilgi için bkz. OneDotNetSingleProject .

ArchiveBasePath

Arşivlerin uzak derleme için Windows'ta depolandığı konum.

Varsayılan değer: %LocalAppData%\Xamarin\iOS\Archives

Yalnızca iOS projeleri için geçerlidir (yalnızca iOS projeleri Windows'tan uzaktan oluşturulabildiğinden).

ArchiveOnBuild

Derlemenin sonunda bir Xcode arşivi oluşturulması gerekiyorsa.

BGenEmitDebugInformation

bgen Aracın (bağlama oluşturucu) hata ayıklama bilgilerini yayması gerekip gerekmediği.

Varsayılan davranış, true özelliği Debug olarak ayarlandığında true olur.

BGenExtraArgs

bgen aracına (bağlama oluşturucu) ek herhangi bir bağımsız değişken.

BGenToolExe

bgen yürütme dosyasının adı (bağlama projeleri tarafından bağlama oluşturmak için kullanılan bir araç).

Varsayılan davranış, iş yükümüzle birlikte gönderilen aracı kullanmaktır bgen .

BGenToolPath

(bgen) öğesinin bulunduğu dizin.

Varsayılan davranış, iş yükümüzle birlikte gönderilen aracı kullanmaktır bgen .

BuildIpa

Derlemenin sonunda uygulama paketi için bir paket (.ipa) oluşturulması gerekiyorsa.

Yalnızca iOS ve tvOS projeleri için geçerlidir.

Bkz. macOS ve Mac Catalyst projeleri için CreatePackage .

BundleCreateDump

CoreCLR, işlem kilitlenirse çekirdek dökümleri oluşturmak için createdump adlı bir komut satırı yardımcı programına sahiptir. macOS, tüm App Store uygulamaları için otomatik olarak kilitlenme raporları oluşturur ve bunları uygulama geliştiricisi tarafından kullanılabilir hale getirir, bu nedenle createdump araç birçok macOS uygulaması için kullanışlı değildir ve bu nedenle varsayılan olarak uygulamalara dahil değildir.

Bu BundleCreateDump özelliği ayarlanarak geçersiz kılınabilir.

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

Not: createdump araç, şu anda korumalı uygulamalar için çalışmıyor (#18961);

Yalnızca CoreCLR çalışma zamanını kullanan projeler için geçerlidir (bu yazının yazıldığı anda yalnızca macOS projeleridir).

Orijinal Kaynak Paketlemesi

Bu özellik, kaynakların kitaplık projelerine katıştırılmadan önce derlenip derlenmeyeceğini veya özgün (derlenmemiş) sürümün eklenip eklenmeyeceğini belirler.

Geçmişte, kaynaklar kitaplık projelerine eklenmeden önce derlenmiştir, ancak bunun birkaç dezavantajı olan Xcode'un kullanılabilir olması gerekir:

  • Windows'ta uzak derleme işlemlerini yavaşlatır.
  • Windows'da yerel olarak derleme yaparken ve macOS dışındaki diğer platformlarda da çalışmaz.
  • Kaynaklar, söz konusu kitaplık kullanıldığında kullanılabilir olabilecek daha yeni bir Xcode ile aynı özelliklere sahip olmayan mevcut Xcode kullanılarak derlenir.
  • Bir uygulama oluştururken tüm kaynakların tam program görünümüne sahip olmak imkansız hale gelir, bu da çakışan kaynakların tespit edilmesi için gereklidir.

Bu nedenle, özgün kaynakları kütüphanelere eklemek için destek ekledik. .NET 9'da isteğe bağlı olacak, ancak .NET 10'da varsayılan olarak devre dışı bırakılabilir.

.NET 9 ve false .NET 10+ içinde bu özelliğin true varsayılan değeri.

Uyarı

Bu özelliği devre dışı bırakmanız gerektiğini fark ederseniz bir sorun oluşturun çünkü devre dışı bırakma seçeneği gelecekte kaldırılacaktır.

CodesignAllocate

Araca giden yol codesign_allocate.

Varsayılan olarak bu değer otomatik olarak algılanır.

CodesignConfigureDependsOn

Bu, derleme için bir uzantı noktasıdır: Geliştirici, derleme birlikte tasarlama özelliklerinden herhangi birine bakmadan önce bu hedefleri yürütmek için bu özelliğe herhangi bir hedef ekleyebilir.

Örneğin bu, simülatör derlemeleri için kod imzalamayı devre dışı bırakmak için kullanılabilir:

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

Ortak Tasarım Bağımlı Olur

Bu, derleme için bir uzantı noktasıdır: Geliştirici, uygulama paketi imzalanmadan önce bu hedefleri yürütmek için bu özelliğe herhangi bir hedef ekleyebilir.

Örnek:

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

Ortak Tasarım Hakları

Uygulamanın gerektirdiği yetkilendirmeleri belirten yetkilendirmeler dosyasının yolu.

Genellikle "Entitlements.plist".

Proje kök dizininde böyle bir dosya varsa bunu otomatik olarak "Entitlements.plist" olarak ayarlayacağız.

EnableDefaultCodesignEntitlements özelliği olarak falseayarlanarak bu önlenebilir.

CodesignExtraArgs

'codesign' aracına, uygulama paketi imzalanırken geçirilen ek parametreler.

CodesignKey

Uygulama paketini imzalarken kullanılacak kod imzalama anahtarını belirtir.

CodesignKeychain

Kod imzalama sırasında kullanılacak anahtarlık.

Kod İmzalama Anahtarı

Uygulama paketini imzalarken kullanılacak kod imzalama anahtarını belirtir.

Yalnızca macOS ve Mac Catalyst uygulamaları için geçerlidir, ancak bunun yerine CodesignKey özelliğinin kullanılması önerilir (tüm platformlarda çalışır).

CodesignProvision

Uygulama paketini imzalarken kullanılacak sağlama profilini belirtir.

CodesignResourceRules

Uygulama paketine kopyalanacak olan ResourceRules.plist dosyasının yolu.

CodesignRequireProvisioningProfile

Uygulama paketini imzalarken bir sağlama profili gerekip gerekmediğini belirtir.

Varsayılan olarak, şu durumlarda bir sağlama profili gerekir:

  • macOS, Mac Catalyst: Bir sağlama profili belirtildi ( CodesignProvision özelliğiyle).
  • iOS, tvOS: cihaz için derleme veya yetkilendirme dosyası belirtildi ( CodesignEntitlements özelliğiyle).

Bu özelliği true veya false olarak ayarlamak, varsayılan mantığı geçersiz kılar.

SıkıştırmaBağlamaKaynakPaketi

Bağlama projelerindeki yerel başvurular, derleme işlemi sırasında bağlama derlemesinin yanında, "bağlama kaynak paketi" olarak adlandırdığımız bir yapıya kopyalanır.

Bu yerel başvurular, $(AssemblyName).resources.zip adlı bir zip dosyasının içinde sıkıştırılmış olarak veya $(AssemblyName).resources adlı bir dizin içinde olduğu gibi depolanabilir.

CompressBindingResourcePackage özelliği zip dosyası mı yoksa dizin mi oluşturulacağını belirtir.

Olası değerler:

  • auto: otomatik olarak en iyi seçeneğe karar verir (şu anda bir zip dosyası her zaman oluşturulur, ancak Visual Studio Windows'ta uzun yolları desteklediğinde, bu yalnızca symlink'leri olan zip bağlama kaynak paketlerine değişebilir).
  • true: zip dosyası oluşturma
  • false: dizin oluşturma

Varsayılan değer: auto.

Bu, doğal referansların NuGet'ler içinde nasıl depolandığı için de geçerlidir.

Uyarı

Bazı durumlarda, zip dosyası bazen Windows'taki MAX_PATH sorunlarına çözüm getirebileceğinden, özellikle uzun adlara sahip dosyaları olan bir çerçeve olduğunda, iOS'ta da zip dosyasını zorlamak yararlı olabilir.

CopySceneKitAssetsPath

copySceneKitAssets aracının tam yolu.

Varsayılan davranış kullanmaktır xcrun copySceneKitAssets.

CoreMLCompilerPath

coremlc aracının tam yolu.

Varsayılan davranış kullanmaktır xcrun coremlc.

Uygulama Paketi Oluşturma Bağımlılıkları

Bu, derleme için bir uzantı noktasıdır: Geliştirici, uygulama paketini oluştururken bu hedefleri yürütmek için bu özelliğe herhangi bir hedef ekleyebilir.

Örnek:

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

CreateIpaBağlılıklaraBağlı

Bu, derleme için bir uzantı noktasıdır: Bir geliştirici, IPA oluştururken bu hedefleri yürütmek için bu özelliğe herhangi bir hedef ekleyebilir.

IPA arşivleri oluşturan, şu anda iOS ve tvOS platformları için geçerli olan tüm platformlar için geçerlidir.

Örnek:

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

PaketOluştur

Derlemenin sonunda uygulama paketi için bir paket (.pkg) oluşturulması gerekiyorsa.

Yalnızca macOS ve Mac Catalyst projeleri için geçerlidir.

Bkz. iOS ve tvOS projeleri için BuildIpa .

DeviceSpecificBuild

Derlemenin seçili cihaza özgü olması gerekiyorsa.

Cihaza özgü derlemeleri (şu anda iOS ve tvOS) destekleyen tüm platformlar için geçerlidir.

CihazaÖzgüAraÇıkışYolu

Cihaza özgü derlemeler etkinleştirildiğinde kullanılacak ara çıkış yolu.

Cihaza özgü derlemeleri (şu anda iOS ve tvOS) destekleyen tüm platformlar için geçerlidir.

Cihaza Özgü Çıktı Yolu

Cihaza özgü derlemeler etkinleştirildiğinde kullanılacak çıkış yolu.

Cihaza özgü derlemeleri (şu anda iOS ve tvOS) destekleyen tüm platformlar için geçerlidir.

Teşhis Adresi

Yürütüldüğü dotnet-dsrouter IP adresi. Bu, simülatörde profil oluşturulurken genellikle 127.0.0.1, cihazda profil oluşturulurken makinenin IP adresi dotnet-dsrouter şeklindedir.

Bu, DiagnosticConfiguration'ın IP adresi bileşenidir.

EnableDiagnostics'i gizli olarak true ayarlar.

Varsayılan olarak 127.0.0.1 değerini alır.

TanılamaYapılandırması

Örneğin dotnet-dsrouter için DOTNET_DiagnosticPorts tarafından sağlanan bir değer:

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

Komut satırında ,'a geçirilirse, %2c karakterinin dotnet build ile kaçış karakteriyle belirtilmesi gerektiğini unutmayın:

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

Bu, uygulama başlatıldığında ortam değişkeninin DOTNET_DiagnosticPorts ayarlanması için uygulamanın içinde paketlenmiş ortam değişkenini otomatik olarak ayarlar.

EnableDiagnostics'i gizli olarak true ayarlar.

Varsayılan davranış, bu değeri diğer tanılama özelliklerinden (DiagnosticAddress, DiagnosticPort, DiagnosticListenMode ve DiagnosticSuspend) hesaplamaktır.

Ayarlanırsa, diğer tanılama özelliklerinden herhangi biri göz ardı edilir.

Diagnostic Dinleme Modu

Veya dotnet-dsroutergibi connect tarafından sağlanan listen bir değer, DiagnosticConfiguration'ın dinleme modu bileşenidir.

EnableDiagnostics'i gizli olarak true ayarlar.

Varsayılan olarak listen değerini alır.

DiagnosticPort

tarafından sağlanan bir değer dotnet-dsrouter gibi 9000, DiagnosticConfiguration'ın bağlantı noktası bileşenidir.

EnableDiagnostics'i gizli olarak true ayarlar.

Varsayılan olarak 9000 değerini alır.

Tanılama Askıya Alındı

Bir uygulamanın profilini oluştururken başlatma davranışını belirten bir değer.

true Başlangıçta uygulamayı askıya almak (tanılama sunucusunun uygulamaya bağlanmasını beklemek) veya false uygulamayı her zamanki gibi başlatmak (ve tanılama sunucusunu daha sonra uygulamaya bağlamak) için olarak ayarlayın.

Bu, suspend/nosuspend değeri DiagnosticConfiguration içindeki değerine karşılık gelir.

EnableDiagnostics'i gizli olarak true ayarlar.

Varsayılan olarak false değerini alır.

DittoPath

Yürütülebilir dosyanın tam yolu ditto.

Varsayılan davranış kullanmaktır /usr/bin/ditto.

İstek Üzerine Kaynakları Yerleştir

İsteğe bağlı kaynakların uygulama paketine katıştırılması gerekiyorsa.

Varsayılan: doğru

Kod İmzalamayı Etkinleştir

Kod imzalama etkinleştirilmişse.

Kod imzalama tüm platformlar için varsayılan olarak etkindir; bu özellik ile geçersiz kılınabilir.

Varsayılan Kod İmzalama Yetkilerini Etkinleştir

Bkz . CodesignEntitlements.

İsteğe Bağlı Kaynakları Etkinleştir

İsteğe bağlı kaynaklar etkinleştirildiyse.

Varsayılan: macOS için false, diğer tüm platformlar için true.

Paket İmzalamayı Etkinleştir

Oluşturulan .pkg'nin imzalanması gerekir (eğer CreatePackage etkinleştirildiyse).

Yalnızca macOS ve Mac Catalyst için geçerlidir.

Tanılama Özelliklerini Etkinleştir

Tanılamanın (profil oluşturma gibi) çalışması için gereken bileşenleri etkinleştirin.

Hata ayıklama derlemeleri için varsayılan olarak etkinleştirilir ( MtouchDebug veya MmpDebug etkinleştirildiğinde), ancak sürüm derlemelerinin profilini oluşturmadan önce el ile etkinleştirilmesi gerekir:

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

Bu, uygulama boyutunu biraz artırır.

Yalnızca Mono çalışma zamanını kullanırken geçerlidir (CoreCLR her zaman tanılamayı desteklerken NativeAOT hiçbir zaman desteklemez).

EnableSGenConc

SGen çöp toplayıcısı için eşzamanlı modu etkinleştirir.

Yalnızca iOS, tvOS ve Mac Catalyst için geçerlidir (NativeAOT kullanmadığında).

EtkinlikKaynağıDesteği

false olarak ayarlandığında, kırpılmış uygulamalarda .NET'in EventSource desteğini devre dışı bırakır. Bu özelliği devre dışı bırakmak, .NET tanılama araçlarının dotnet-counters çalışmasını engeller, ancak uygulama boyutunu küçültebilir.

Varsayılan: false etkin olmadığı sürece Optimize ne zaman true olarak ayarlanır Release (derlemeler için $(EnableDiagnostics) varsayılan değerdir).

Uygulama Bildirim Dosyası Oluşturma

Eğer bir uygulama bildirimi (Info.plist) oluşturulmalıysa.

Varsayılan: doğru

GeneratedSourcesDir

Generatörden üretilen kaynağın kaydedildiği yer.

TümUygulamaSimgeleriniDahilEt

Tüm varlık kataloglarındaki IncludeAllAppIcons tüm uygulama simgelerini uygulamaya otomatik olarak eklemek için özelliğini true olarak ayarlayın.

Örnek:

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

Ayrıca bkz:

iOSMinimumVersion

Uygulamanın çalıştırabileceği en düşük iOS sürümünü belirtir.

iOS için geçerlidir; bu değer ayarlandığında iOS projeleri için SupportedOSPlatformVersion ayarlanır (yalnızca).

IPhoneResourcePrefix

Kaynakların depolandığı dizin (kaynakları uygulama paketine kopyalarken bu ön ek kaldırılır).

iOS, tvOS ve Mac Catalyst projeleri için geçerlidir.

Bunun yerine birleşik AppBundleResourcePrefix özelliğini kullanmayı düşünün.

Ayrıca bkz. MonoMacResourcePrefix ve XamMacResourcePrefix.

IpaIncludeArtwork

IPA'ya sanat eseri eklenmesi gerekiyorsa.

Yalnızca iOS ve tvOS projeleri için geçerlidir.

IpaPackageName

IPA paketi oluştururken elde edilen .ipa dosyasının (yolu olmadan) adını belirtir (bkz . BuildIpa). IpaPackagePath bu değeri geçersiz kılar.

Yalnızca iOS ve tvOS projeleri için geçerlidir.

IpaPackageDir

IPA paketi oluştururken elde edilen .ipa dosyasının dizinini belirtir (bkz . BuildIpa). IpaPackagePath bu değeri geçersiz kılar.

Yalnızca iOS ve tvOS projeleri için geçerlidir.

IpaPackagePath

IPA paketi oluştururken elde edilen .ipa dosyasının yolunu belirtir (bkz . BuildIpa).

Yalnızca iOS ve tvOS projeleri için geçerlidir.

IsAppExtension

Proje bir uygulama uzantısıysa.

IsBindingProject

Proje bağlayıcı bir projeyse.

IsXPCService

MacOS uzantısı bir xpc hizmetiyse.

Yalnızca macOS projeleri için geçerlidir.

Bağlantı Modu

Projenin (NoneSdkOnlyveya Full) bağlantı modunu belirtir.

macOS projeleri için geçerlidir, ancak bu özellik kullanım dışıdır, bunun yerine TrimMode kullanın.

Ayrıca bkz. MtouchLink.

Swift Sistem Kütüphaneleri ile Bağla

olarak ayarlanırsa true, derleme, yerel bağlayıcıya Swift'in sistem kitaplıklarını nerede bulacağını söyler.

Bu, yerel bir kitaplık swift'i bir şekilde kullandığında kullanışlıdır ve bu durumda yerel bağlayıcının Swift'in sistem kitaplıklarını nerede bulacağını bilmesi gerekir.

Şu anda bu bağımsız değişkenlerin yerel bağlayıcıya geçirileceği anlamına gelir:

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

Tam argüman kümesi gelecekte değişebilir.

MacCatalystMinimumVersion (MacCatalyst Minimum Versiyonu)

Uygulamanın çalıştırabileceği en düşük Mac Catalyst (iOS) sürümünü belirtir.

Mac Catalyst için geçerlidir; bu değer ayarlandığında Mac Catalyst projeleri için SupportedOSPlatformVersion (yalnızca) ayarlanır.

MaciOSPrepareForBuildDependsOn

Yapı sürecini genişletmek için kullanılabilecek noktalı virgülle ayrılmış özellik. Bu özelliğe eklenen MSBuild hedefleri hem uygulama hem de kitaplık proje türleri için derlemenin erken aşamalarında yürütülür. Bu özellik varsayılan olarak boş kalır.

Örnek:

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

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

Bu özellik .NET 9'da tanıtıldı.

macOS Minimum Sürümü

Uygulamanın çalışabileceği en düşük macOS sürümünü belirtir.

macOS için geçerlidir; bu değer ayarlandığında macOS projeleri için SupportedOSPlatformVersion ayarlanır (yalnızca).

MacOSXSdkVersion

Derleme için kullanılacak macOS SDK sürümü.

Varsayılan: seçilen Xcode ile birlikte gönderilen varsayılan sürüme göre otomatik olarak algılanır.

Ayrıca bkz. MtouchSdkVersion.

Yönetilen İstisna Modu Yönlendirme

Yönetilen bir özel durum işlenirken, yığın geri sarma sırasında yerel bir çerçeveyle karşılaşıldığında, yönetilen özel durumların nasıl ele alınacağını seçin.

Geçerli değerler:

  • default: Şu anda bu throwobjectivecexception.
  • unwindnativecode: Bu, CoreCLR çalışma zamanı kullanılırken kullanılamaz.
  • throwobjectivecexception: Yönetilen özel durumu yakalayın ve bir Objective-C özel duruma dönüştürün.
  • abort: İşlemi durdurun.
  • disable: Yönetilen özel durumları yakalamayı devre dışı bırakın. MonoVM için bu, unwindnativecode ile eşdeğerdir, CoreCLR için bu, abort ile eşdeğerdir.

Daha fazla bilgi için Özel Durum İşleme ve MarshalObjectiveCExceptionMode bölümüne bakın.

MarshalObjectiveCExceptionMode

Objective-C özel durumu işlenirken yığın geri sarma sırasında yönetilen çerçeveyle karşılaşıldığında Objective-C özel durumların nasıl işleneceğini seçin.

Geçerli değerler:

  • default: Şu anda bu throwmanagedexception.
  • unwindmanagedcode: Bu, CoreCLR çalışma zamanı kullanılırken kullanılamaz.
  • throwmanagedexception: Objective-C özel durumunu yakalayın ve yönetilen özel duruma dönüştürün.
  • abort: İşlemi durdurun.
  • disable: Objective-C istisnalarını önlemeyi devre dışı bırakın.

Daha fazla bilgi için bkz. Özel durum aktarma ve MarshalManagedExceptionMode.

MdimportPath

mdimport aracının tam yolu.

Varsayılan davranış kullanmaktır xcrun mdimport.

MetalLibPath

metallib aracının (Metal Bağlayıcı) tam yolu.

Varsayılan davranış kullanmaktır xcrun metallib.

MetalPath

Metal derleyicisinin tam yolu.

Varsayılan davranış kullanmaktır xcrun metal.

MetricsSupport

false ayarlandığında, .NET'in Ölçümler desteğini kırpılan uygulamalardan devre dışı bırakır. Bu özelliğin devre dışı bırakılması, uygulama boyutunun azalmasının yararına olduğu gibi System.Diagnostics.Metrics API'lerin çalışmasını engeller.

Varsayılan: false etkin olmadığı sürece Optimize ne zaman true olarak ayarlanır Release (derlemeler için $(EnableDiagnostics) varsayılan değerdir).

MmpDebug

Uygulama paketi oluşturma için hata ayıklama modunu etkinleştirir.

Yalnızca macOS projeleri için geçerlidir.

Ayrıca bkz. MtouchDebug.

MobileAggressiveAttributeTrimming

Bu özellik, çalışma zamanında çok nadir ihtiyaç duyulan çok sayıda özniteliğin kırpılıp kırpılmayacağını belirler.

Bu, varsayılan olarak etkindir.

Kaldırılan öznitelikler çok nadir kullanılırken, kaldırma işleminin çalışma zamanı davranışını değiştirebileceğini unutmayın.

Örneğin, bir oluşturucu özniteliğine (kaldırılan özniteliklerden biridir) sahipse [Obsolete] System.Xml.Serialization farklı davranır. Bu, boyut tasarrufları nedeniyle bu özniteliklerin varsayılan olarak kaldırılmasını gerekçelendirmek için yeterince düşük bir risktir.

Kaldırılan özniteliklerin listesi gelecekte değişebilir, ancak bu yazının yazıldığı sırada (.NET 10 için) öznitelikler şunlardır:

  • 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

Bu özellik .NET 10'da tanıtıldı.

MonoBundlingExtraArgs

Uygulama paketinin nasıl oluşturulacağını belirten ek bağımsız değişkenler.

Yalnızca macOS projeleri için geçerlidir.

Bu özellik kullanımdan kaldırıldı, bunun yerine AppBundleExtraOptions kullanın.

MonoMacResourcePrefix

Kaynakların depolandığı dizin (kaynakları uygulama paketine kopyalarken bu ön ek kaldırılır).

Yalnızca macOS projeleri için geçerlidir.

Bunun yerine birleşik AppBundleResourcePrefix özelliğini kullanmayı düşünün.

Ayrıca bkz. IPhoneResourcePrefix ve XamMacResourcePrefix.

MonoUseCompressedInterfaceBitmap

Bu, Mono çalışma zamanını arabirim bit eşlemlerinin sıkıştırılmış bir sürümünü kullanmaya yönlendirir (belirli bir türün belirli bir arabirimi uygulayıp uygulamadığını belirlemek için arabirim bit eşlemleri kullanılır).

Bu bit eşlemler, özellikle önemli miktarda arabirime sahip uygulamalar için çalışma zamanında önemli miktarda bellek kullanabilir.

Bu ayar varsayılan olarak devre dışıdır, ancak bu şekilde etkinleştirilebilir ve bu da çalışma zamanında kullanılan bellek miktarını azaltır:

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

Dezavantajı, tür denetimlerinin (obj is SomeInterface) daha yavaş olmasıdır.

Yalnızca Mono çalışma zamanı kullanılırken geçerlidir.

MtouchDebug

Uygulama paketi oluşturma için hata ayıklama modunu etkinleştirir.

iOS, tvOS ve Mac Catalyst projeleri için geçerlidir.

Ayrıca bkz. MmpDebug.

MtouchEnableSGenConc

SGen çöp toplayıcısı için eşzamanlı modu etkinleştirir.

NativeAOT kullanılmadığında yalnızca iOS, tvOS ve Mac Catalyst için geçerlidir.

Bu özellik kullanım dışı bırakıldı, bunun yerine EnableSGenConc kullanın.

MtouchExtraArgs

Uygulama paketinin nasıl oluşturulacağını belirten ek bağımsız değişkenler.

Yalnızca iOS, tvOS ve Mac Catalyst projeleri için geçerlidir.

Bu özellik kullanımdan kaldırıldı, bunun yerine AppBundleExtraOptions kullanın.

MtouchInterpreter

Yorumlayıcıyı etkinleştirir ve isteğe bağlı olarak yorumlanması için virgülle ayrılmış bir bileşen listesi alır (bileşenin önüne eksi işareti eklenmişse, bileşen AOT ile derlenecektir). 'all' tüm derlemeleri belirtmek için kullanılabilir. Bu bağımsız değişken birden çok kez belirtilebilir.

Örnek:

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

MtouchInterpreter ayarlamak, UseInterpreter=true için bir kısaltmadır ve bu, MtouchInterpreter=all ile eşdeğerdir.

Hem UseInterpreter hem de MtouchInterpreter ayarlandıysa, MtouchInterpreter önceliklidir.

iOS, tvOS ve Mac Catalyst uygulamaları için geçerlidir (NativeAOT kullanmadığında).

Varsayılan davranış, yorumlayıcıyı etkinleştirmemektir.

Uyarı

MAUI, UseInterpreter=true yapılandırması için "Debug" varsayılanı ayarlayarak değiştirir.

Proje (None, SdkOnly, Full) için bağlantı modunu belirtir.

iOS, tvOS ve Mac Catalyst projeleri için geçerlidir, ancak bu özellik kullanım dışıdır, bunun yerine TrimMode kullanın.

Ayrıca bkz. LinkMode.

MtouchSdkVersion

Derleme için kullanılacak iOS veya tvOS SDK sürümü.

Varsayılan: seçilen Xcode ile birlikte gönderilen varsayılan sürüme göre otomatik olarak algılanır.

Ayrıca bkz. MacOSXSdkVersion.

MtouchUseLlvm

AOT derlemesinin LLVM kullanılarak yapılıp yapılmayacağını belirten bir boole özelliği.

iOS, tvOS ve Mac Catalyst projeleri için geçerlidir.

Varsayılan:

  • iOS ve tvOS'ta: Yayın derlemeleri için etkinleştirildi (burada Configuration="Release").
  • Mac Catalyst'te: varsayılan olarak hiçbir zaman etkinleştirilmedi.

NoBindingEmbedding

Bağlama projelerindeki yerel kitaplıkların yönetilen derlemeye eklenip eklenmeyeceğini veya yönetilen derlemenin yanındaki bir dizine yerleştirilip yerleştirilmeyeceğini belirten boole .resources özelliği.

Varsayılan değerdir true (bu, yerel kitaplıkların yönetilen derlemeye eklenmediği anlamına gelir).

Uyarı

Xcframeworks, yönetilen derleme içinde katıştırılmışsa düzgün çalışmaz (eğer bu özellik true değilse).

NoDSymUtil

.dSYM oluşturmanın devre dışı bırakılıp bırakılmayacağını belirten boole özelliği.

Varsayılan:

  • true simülatör için oluştururken iOS ve tvOS için.
  • true arşiv oluşturmadıkça macOS ve Mac Catalyst için (ArchiveOnBuild=true)

Bu, .dSYM arşivinin aşağıdaki durumlarda oluşturulacağı anlamına gelir (varsayılan olarak):

  • iOS ve tvOS'ta, cihaz için derleme yaparken.
  • MacOS ve Mac Catalyst'te arşiv oluştururken (ArchiveOnBuild=true ).

NoSymbolStrip

Derleme zamanında hata ayıklama simgelerinin uygulamadan kaldırılıp kaldırılmayacağını belirten boole özelliği.

Varsayılan davranış, hata ayıklama simgelerini şu şekilde tutmaktır:

  • Debug masaüstü platformları için derlemeler.
  • Mobil platformlar için simülatör derlemeleri.

Hata ayıklama simgelerini tutma örneği:

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

İstek Üzerine Kaynaklar İlk Yükleme Etiketleri

İsteğe bağlı kaynaklar için ilk yükleme etiketlerini belirten bir dize özelliği.

OnDemandResourcesPrefetchOrder

İsteğe bağlı kaynaklar için önceden getirme sırasını belirten bir dize özelliği.

OnDemandKaynaklarUrl

İsteğe bağlı kaynaklar için kaynak URL'sini belirten dize özelliği.

PNG'leri Optimize Et

Png görüntülerinin iyileştirilip iyileştirilmeyeceğini belirten boole özelliği.

PngGörüntüleriniOptimizeEtBağlıdır

Bu, derleme için bir uzantı noktasıdır: Bir geliştirici, png görüntüleri iyileştirilmeden önce bu hedefleri yürütmek için bu özelliğe herhangi bir hedef ekleyebilir.

Örnek:

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

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

ÖzellikListeleriniOptimizeEt

Özellik listelerinin (plists) iyileştirilip iyileştirilmemesi gerektiğini belirten boole özelliği.

ÖzellikListeleriniOptimizeEtBağlıdır

Bu, derleme için bir uzantı noktasıdır: Bir geliştirici, özellik listeleri (plists) iyileştirilmeden önce bu hedefleri yürütmek için bu özelliğe herhangi bir hedef ekleyebilir.

Örnek:

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

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

Paket İmzalama Anahtarı

macOS ve Mac Catalyst projesi için .pkg oluştururken paketi imzalamak için kod imzalama anahtarını belirtir.

Yalnızca macOS ve Mac Catalyst uygulamaları için geçerlidir.

PackagingExtraArgs

macOS ve Mac Catalyst projeleri için .pkg oluşturduğunda 'productbuild' aracına aktarılacak ek bağımsız değişkenleri belirtir.

Yalnızca macOS ve Mac Catalyst uygulamaları için geçerlidir.

PkgPackagePath

Paket oluştururken elde edilen .pkg dosyasının yolunu belirtir (bkz . CreatePackage).

Yalnızca macOS ve Mac Catalyst uygulamaları için geçerlidir.

PlutilPath

plutil komut satırı aracının tam yolu.

Varsayılan davranış kullanmaktır xcrun plutil.

PngCrushPath

pngcrush komut satırı aracının tam yolu.

Varsayılan davranış kullanmaktır xcrun pngcrush.

ProcessEnums

Numaralandırmaların bağlantı projelerinde bir API tanımı olarak işlenip işlenmeyeceğini belirten boolean özelliği.

ProductBuildPath

productbuild aracının tam yolu.

Varsayılan davranış kullanmaktır xcrun productbuild.

Ürün Tanımı

Ürün oluşturma şablonu (.plist), paketler (.pkg) oluşturulurken ürün tanımı oluşturmak ve bu tanımı ürün derleme aracına geçirmek için kullanılacaktır.

Yalnızca macOS ve Mac Catalyst uygulamaları için geçerlidir.

ReferansYerelSembol

tr-TR: ReferenceNativeSymbol öğe grubu, belirli bir yerel simgeyi nasıl ele alacağımızı belirtmek için kullanılabilir: onu yoksayın veya simgeyi yerel bağlayıcıya -u ... olarak veya bir sembol dosyasında ileterek yerel bağlayıcıdan simgeyi tutmasını isteyin.

Desteklenen iki meta veri türü vardır:

  • SymbolType: veya ObjectiveCClassFunctionField. Bir simgenin tam yerel adını hesaplamak için kullanılır (örneğin, Objective-C sınıfının MyClass yerel simgesi olurken _OBJC_CLASS_$_MyClass, bir işlev MyFunction için ise yalnızca _MyFunctionolur.
  • SymbolMode: ya Ignore ya da ayarlanmadı. Ignore verilen simgeyi yerel bağlayıcıya geçirmemek anlamına gelir, varsayılan değer bunu yapmaktır.

SymbolType gerekli olsa da SymbolMode gerekli değildir.

Tutulacak örnek simge:

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

Yoksaymak için örnek simge:

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

RequireLinkWithAttributeForObjectiveCClassSearch

Mevcut Objective-C sınıflarına eşleyen yönetilen sınıflar için tüm kütüphaneleri otomatik olarak tarayacağız ve ardından bu Objective-C sınıfları için derleme zamanında yerel bir başvuru oluşturacağız.

Bu şekilde yerel bağlayıcı, kullanılmadıklarını düşünerek bu Objective-C sınıflarını kaldırmaz.

Ancak, yönetilen bir sınıf var olmayan bir Objective-C sınıfına başvuruda bulunursa, bu bir soruna neden olabilir. Bu konuda en uygun çözüm, derlemeden bu tür yönetilen sınıfları çıkarmaktır. Ancak, yönetilen sınıf bir ikili başvurudan geliyorsa (örneğin NuGet), bu oldukça zahmetli olabilir.

Bu gibi durumlarda, yalnızca Objective-C sınıfları için RequireLinkWithAttributeForObjectiveCClassSearch özniteliğine sahip kitaplıkları tarayabilmemiz için true özelliğini [LinkWith] olarak ayarlamak mümkündür.

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

RunWithOpen

Bu özellik, uygulamaların macOS'ta komutu kullanılarak open başlatılıp başlatılmayacağını veya uygulamanın yürütülebilir dosyasının doğrudan yürütülür olup olmadığını belirler.

Bu yalnızca macOS ve Mac Catalyst uygulamaları için geçerlidir.

Varsayılan değer şudur: true. Bu modda, uygulama macOS tarafından başka bir ui uygulaması olarak başlatılır, herhangi bir stdout/stderr çıkışı macOS tarafından yutulacak ve dotnet run uygulama başlatıldığında komut sona erecektir.

olarak falseayarlanırsa, geçerli terminale herhangi bir stdout/stderr çıkışı yazdırılır ve dotnet run uygulamadan çıkılana kadar komut tamamlanmaz.

true ayarlandığında davranışı yapılandırmak için aşağıdaki özellikler kullanılabilir (örneğin, open komutunu kullanarak):

OpenNewInstance

Uygulama zaten çalışıyorsa ve yeni bir örnek açılacaksa (varsayılan olarak false olur).

Bu, -n olarak ayarlanırsa opentrue'e aktarılır.

Örnek:

$ dotnet run -p:OpenNewInstance=false

OpenWaitForExit

'Dotnet run' komutu, varsayılan olarak (false) ayarlanmışsa uygulamanın çıkmasını beklemelidir.

Bu, -W olarak ayarlanırsa opentrue'e aktarılır.

Örnek:

$ dotnet run -p:OpenWaitForExit=true

OpenArguments

Bu özellik, open komutuna ek bağımsız değişkenler geçirmek için kullanılabilir.

Örnek (ortam değişkenlerini ayarlamak için):

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

Örnek (stdout ve stderr'ı bir dosyaya yeniden yönlendirmek için):

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

Tüm seçeneklerin kabul edildiği bir listeyi görmek için man open komutunu çalıştırınopen.

StandardOutputPath

Bu özellik, uygulamadan stdout çıkışını bir dosyaya yeniden yönlendirmek için kullanılabilir.

Dosyaya yazma örneği:

$ dotnet run -p:StandardOutputPath=stdout.txt

Geçerli terminale yazma örneği:

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

Not: Bu, --stdout ... öğesini kullanarak OpenArguments özelliği aracılığıyla da gerçekleştirilebilir.

StandardErrorPath

Bu özellik, uygulamadan stderr çıkışını bir dosyaya yeniden yönlendirmek için kullanılabilir.

Dosyaya yazma örneği:

$ dotnet run -p:StandardErrorPath=stderr.txt

Geçerli terminale yazma örneği:

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

Not: Bu, --stderr ... öğesini kullanarak OpenArguments özelliği aracılığıyla da gerçekleştirilebilir.

StandardInputPath

Bu özellik, stdin girişini bir dosyadan uygulamaya yeniden yönlendirmek için kullanılabilir.

Örnek:

$ dotnet run -p:StandardInputPath=stdin.txt

Not: Bu, --stdin ... öğesini kullanarak OpenArguments özelliği aracılığıyla da gerçekleştirilebilir.

SdkIsSimulator

Bu, bir simülatör için oluşturulup oluşturulmadığını belirten salt okunur bir özelliktir ve ayarını değiştirmek hiçbir etki yapmaz.

Yalnızca içeri aktarmalar ve özellikler değerlendirildikten sonra ayarlanır. Bu, proje dosyasındaki özellikler değerlendirilirken özelliğin ayarlanmadığı anlamına gelir, bu nedenle bu işlem çalışmaz :

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

Ancak, aşağıdakilerden biri işe yarar:

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

Not: Bu özellik her zaman macOS ve Mac Catalyst üzerinde olacaktır false .

StripPath

strip komut satırı aracının tam yolu.

Varsayılan davranış kullanmaktır xcrun strip.

Desteklenen İşletim Sistemi Platform Sürümü

Uygulamanın çalışabileceği en düşük işletim sistemi sürümünü belirtir.

Platforma özgü bir özelliği kullanmak da mümkündür:

TrimMode

Kırpma hassasiyetini belirtir.

Geçerli seçenekler şunlardır:

  • full: Her derlemeyi kırp.
  • partial: Kırpmayı seçen derlemeleri kırp.
  • copy: Herhangi bir derlemeyi kırpma.

TrimMode özelliği hakkında biraz daha bilgi için bkz. TrimMode

Uyarı

Teknik nedenlerle, düzelticinin hiçbir derleme kırpılmasa bile tüm iOS, tvOS, macOS ve Mac Catalyst projeleri için çalışması gerekir. Bu nedenle, PublishTrimmedfalse olarak ayarlanarak kırpmanın devre dışı bırakılması geçerli değildir - kırpmayı devre dışı bırakmak için bunun yerine TrimMode=copy ayarlayın (eğer PublishTrimmedfalse olarak ayarlanırsa, bir derleme hatası oluşur).

TrimMode özelliği mevcut MtouchLink (iOS, tvOS ve Mac Catalyst için) ve LinkMode (macOS için) özelliklerine eşdeğerdir, ancak geçerli özellik değerleri farklıdır (semantikler aynı olsa bile):

MtouchLink/LinkMode TrimMode
Tamamen dolu dolu
SdkOnly kısmi
Hiç kimse kopya etmek

Bundan sonra MtouchLink ve LinkMode özellikleri kullanım dışı bırakılacaktır, lütfen kullanın TrimMode .

Varsayılan kırpma modu çok sayıda faktöre bağlıdır ve gelecekte de değişebilir.

Geçerli (.NET 9 itibarıyla) varsayılan değerler şunlardır:

  • iOS ve iOS: partial cihaz için oluştururken, copy simülatör için oluştururken.
  • macOS: her zaman copy.
  • Mac Catalyst: partial yapılandırma için "Release" derleme yaparken, copy aksi takdirde.

Özel durumlar:

  • NativeAOT ile oluştururken varsayılan değer her zamandır full .
  • MAUI, yapılandırma için copy oluşturulurken varsayılan değeri Debug olarak değiştirir ve yorumlayıcı UseInterpreter kullanılarak etkinleştirilir (MAUI, yapılandırmayı kullanırken "Debug" varsayılan olarak da etkinleştirir).

Uyarı

Varsayılan kırpma modu gelecekte değişebilir.

tvOSMinimumVersion (tvOS Minimum Sürüm)

Uygulamanın çalışabileceği en düşük tvOS sürümünü belirtir.

tvOS için geçerlidir; ayarı tvOS projeleri için SupportedOSPlatformVersion değerini ayarlar (yalnızca).

UseFloatingTargetPlatformVersion

Kitaplık projelerinin kayan hedef platform sürümünü mü yoksa kullanılabilir en eski platform sürümünü mü kullanması gerektiğini denetleyen boole özelliği.

Varsayılan olarak (.NET 10'dan başlayarak), açık TargetPlatformVersion olmayan kitaplık projeleri geçerli .NET sürümü için en eski kullanılabilir başvuru derlemelerini kullanır. Bu, maksimum uyumluluk sağlar ve kitaplık kodunun hedef çerçeve için kullanılabilen en düşük API yüzeyiyle derlemesini sağlar.

Ancak bu varsayılan davranış, kitaplık projelerinin yürütülebilir projelerden (en son platform sürümünü kullanan) farklı şekilde oluşturulduğu anlamına gelir. Yürütülebilir bir projede çalışan kod, yalnızca daha yeni platform sürümlerinde kullanılabilen API'leri kullanıyorsa bir kitaplık projesine taşındığında derlenmeyebilir.

Bu özelliğin ayarlanması true en eski platform sürümünün otomatik olarak seçilmesini devre dışı bırakır ve kitaplık projesinin yürütülebilir projeler gibi varsayılan (en son) platform sürümünü kullanmasını sağlar.

Örnek:

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

Varsayılan: false (.NET 10+'da kitaplık projeleri için en eski platform sürümünü kullanın).

Bu özellik yalnızca uygulama uzantısı olmayan ve açık bir hedef platform sürümü belirtmemiş kitaplık projeleri (OutputType=Library) için geçerlidir (hedef platform sürümü özelliğin TargetFramework sonundaki isteğe bağlı sürüm numarasıdır, örneğin hedef platform sürümünün açıkça net10.0-ios26.0olduğu TargetFramework 26.0 ).

Bu özellik .NET 10'da tanıtıldı.

UseHardenedRuntime

Sağlamlaştırılmış bir çalışma zamanının etkinleştirilip etkinleştirilmediğini belirten boole özelliği.

macOS ve Mac Catalyst projeleri için geçerlidir.

TercümanıKullan

Yorumlayıcıyı etkinleştirir (tüm derlemeler için).

Bu, MtouchInterpreter=all ayarını ayarlamaya eşdeğerdir.

iOS, tvOS ve Mac Catalyst uygulamaları için geçerlidir (NativeAOT kullanmadığında).

Varsayılan davranış, yorumlayıcıyı etkinleştirmemektir.

Uyarı

MAUI, UseInterpreter=true yapılandırması için "Debug" varsayılanı ayarlayarak değiştirir.

Daha fazla bilgi için bkz. MtouchInterpreter .

UseNativeHttpHandler

Yerel http işleyicisinin varsayılan http işleyicisi olup olmaması gerekir.

Varsayılan: macOS dışındaki tüm platformlar için true.

Hakları Doğrula

Uygulamanın talep ettiği hakların doğrulanıp doğrulanmayacağını seçin.

Bu özellik için geçerli değerler:

  • disable: Doğrulama devre dışı bırakıldı.
  • warn: Tüm doğrulama hataları uyarı olarak gösterilir.
  • error: Tüm doğrulama hataları hata olarak gösterilir. Varsayılan değer budur.

Doğrulama işlemi her hakkı doğrulamayabilir ve çok istekli davranmayacağının garantisi yoktur.

Yetkilendirmeler gerçekten çalışıyorsa, ancak doğrulama başarısız olursa lütfen yeni bir sorun oluşturun.

ValidateXcodeVersion

Geçerli Xcode sürümünün doğrulanıp doğrulanmayacağını seçin.

Varsayılan değer doğrulamaktır; false ayarını devre dışı bırakmak üzere ayarlayın.

Uyarı

Önerilen sürümden farklı bir sürümün kullanılması, derleme işleminin ilerleyen bölümlerinde sorunlara neden olabilir.

XamMacResourcePrefix

Kaynakların depolandığı dizin (kaynakları uygulama paketine kopyalarken bu ön ek kaldırılır).

macOS projeleri için geçerlidir.

Bunun yerine birleşik AppBundleResourcePrefix özelliğini kullanmayı düşünün.

Ayrıca bkz. IPhoneResourcePrefix ve MonoMacResourcePrefix.

ZipPath

zip komut satırı aracının tam yolu.

Varsayılan davranış kullanmaktır xcrun zip.