Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Properti MSBuild mengontrol perilaku target . Mereka ditentukan dalam file proyek, misalnya MyApp.csproj, dalam MSBuild PropertyGroup.
AltoolPath
Jalur lengkap ke alat altool.
Perilaku defaultnya adalah menggunakan xcrun altool.
AppBundleResourcePrefix
Direktori tempat sumber daya disimpan (awalan ini akan dihapus saat menyalin sumber daya ke bundel aplikasi).
Jika tidak diatur secara eksplisit, properti ini akan mewarisi nilainya dari properti awalan sumber daya khusus platform (IPhoneResourcePrefix, MonoMacResourcePrefix, atau XamMacResourcePrefix tergantung pada platform).
Sumber Daya
AppBundleDir
Lokasi bundel aplikasi bawaan.
AppBundleExtraOptions
Argumen tingkat lanjut tambahan untuk pembuatan bundel aplikasi.
Kumpulan argumen yang valid bergantung pada platform.
Biasanya ini tidak boleh digunakan kecuali ditentukan oleh teknisi Microsoft.
Ikon Aplikasi
Grup item AppIcon dapat digunakan untuk menentukan ikon aplikasi untuk aplikasi.
Nilai properti harus menunjuk ke nama file .appiconset (untuk sumber daya gambar iOS, macOS, dan Mac Catalyst) atau .brandassets (untuk tvOS) di dalam katalog aset.
Contoh:
<PropertyGroup>
<!-- The value to put in here for the "Resources/MyImages.xcassets/MyAppIcon.appiconset" resource would be "MyAppIcon" -->
<AppIcon>MyAppIcon</AppIcon>
</PropertyGroup>
Lihat juga:
- Kelompok item AlternateAppIcon.
- Properti IncludeAllAppIcons.
VersiTampilanAplikasi
Jika diatur, menentukan nilai CFBundleShortVersionString dalam manifes aplikasi (Info.plist).
Ini adalah properti yang mendukung ".NET Single Project".
Lihat OneDotNetSingleProject untuk informasi selengkapnya.
ApplicationId
Jika diatur, menentukan nilai CFBundleIdentifier dalam manifes aplikasi (Info.plist).
Ini adalah properti yang mendukung ".NET Single Project".
Lihat OneDotNetSingleProject untuk informasi selengkapnya.
Judul Aplikasi
Jika diatur, menentukan CFBundleDisplayName dalam manifes aplikasi (Info.plist).
Ini adalah properti yang mendukung ".NET Single Project".
Lihat OneDotNetSingleProject untuk informasi selengkapnya.
VersiAplikasi
Jika diatur, menentukan CFBundleVersion dalam manifes aplikasi (Info.plist).
Ini adalah properti yang mendukung ".NET Single Project".
Lihat OneDotNetSingleProject untuk informasi selengkapnya.
ArchiveBasePath
Lokasi tempat arsip disimpan di Windows untuk build jarak jauh.
Defaultnya adalah: %LocalAppData%\Xamarin\iOS\Archives
Hanya berlaku untuk proyek iOS (karena hanya proyek iOS yang dapat dibangun dari jarak jauh dari Windows).
ArchiveOnBuild
Jika arsip Xcode harus dibuat di akhir build.
BGenEmitDebugInformation
Apakah alat bgen (generator pengikatan) harus mengeluarkan informasi debug atau tidak.
Perilaku default adalah true ketika properti Debug diatur ke true.
BGenExtraArgs
Setiap argumen tambahan yang diberikan ke alat bgen (generator pengikatan).
BGenToolExe
Nama berkas eksekusi bgen (alat yang digunakan oleh proyek pengikatan untuk menghasilkan pengikatan).
Perilaku bawaan adalah menggunakan alat bgen yang disertakan dalam beban kerja kami.
BGenToolPath
Direktori di mana bgen (BGenToolExe) berada.
Perilaku bawaan adalah menggunakan alat bgen yang disertakan dalam beban kerja kami.
BuildIpa
Jika sebuah paket (.ipa) harus dibuat untuk sebuah bundel aplikasi di akhir build.
Hanya berlaku untuk proyek iOS dan tvOS.
Lihat CreatePackage untuk proyek macOS dan Mac Catalyst.
BundleCreateDump
CoreCLR memiliki utilitas baris perintah yang disebut createdump untuk membuat cadangan inti jika proses crash. macOS akan secara otomatis membuat laporan crash untuk aplikasi App Store apa pun dan membuatnya tersedia untuk pengembang aplikasi, sehingga createdump alat ini tidak berguna untuk banyak aplikasi macOS, dan dengan demikian, tidak disertakan dalam aplikasi secara default.
Ini dapat diganti dengan mengatur properti BundleCreateDump.
<PropertyGroup>
<BundleCreateDump>true</BundleCreateDump>
</PropertyGroup>
Catatan: createdump alat ini tidak berfungsi saat ini untuk aplikasi yang di-sandbox (#18961);
Hanya berlaku untuk proyek yang menggunakan runtime CoreCLR (yang, pada saat penulisan ini, hanya proyek macOS).
Paket Sumber Daya Asli
Properti ini menentukan apakah sumber daya dikompilasi sebelum disematkan ke dalam proyek pustaka, atau jika versi asli (tidak terkompilasi) disematkan.
Secara historis, sumber daya telah dikompilasi sebelum disematkan ke dalam proyek pustaka, tetapi ini mengharuskan memiliki Xcode yang tersedia, yang memiliki beberapa kelemahan:
- Ini memperlambat build jarak jauh pada Windows.
- Ini tidak akan berfungsi saat membangun secara lokal di Windows, dan tidak di platform lain kecuali macOS.
- Sumber daya dikompilasi menggunakan Xcode yang tersedia saat ini, yang mungkin tidak memiliki fitur yang sama dengan Xcode yang berpotensi lebih baru yang tersedia ketika pustaka yang dimaksud digunakan.
- Ini membuatnya tidak mungkin untuk memiliki tampilan seluruh program dari semua sumber daya saat membangun aplikasi, yang diperlukan untuk mendeteksi sumber daya yang berbenturan.
Dengan demikian, kami telah menambahkan dukungan untuk menyematkan sumber daya asli ke dalam pustaka. Ini akan menjadi pilihan ikut serta dalam .NET 9, tetapi pilihan keluar mulai dari .NET 10.
Nilai default properti false ini di .NET 9, dan true di .NET 10+.
Nota
Ajukan masalah jika Anda menemukan bahwa Anda perlu menonaktifkan fitur ini, karena mungkin opsi untuk menonaktifkannya akan dihapus di masa mendatang.
CodesignAllocate
Jalur ke alat codesign_allocate.
Secara default nilai ini terdeteksi secara otomatis.
CodesignConfigureDependsOn
Ini adalah titik ekstensi untuk build: pengembang dapat menambahkan target apa pun ke properti ini untuk menjalankan target tersebut sebelum build melihat salah satu properti codesigning.
Ini misalnya dapat digunakan untuk menonaktifkan penandatanganan kode untuk build simulator:
<PropertyGroup>
<CodesignConfigureDependsOn>$(CodesignConfigureDependsOn);DisableCodesignInSimulator</CodesignConfigureDependsOn>
</PropertyGroup>
<Target Name="DisableCodesignInSimulator" Condition="'$(SdkIsSimulator)' == 'true'">
<PropertyGroup>
<EnableCodeSigning>false</EnableCodeSigning>
</PropertyGroup>
</Target>
KetergantunganCodesign
Ini adalah titik ekstensi untuk build: pengembang dapat menambahkan target apa pun ke properti ini untuk menjalankan target tersebut sebelum app bundle ditandatangani.
Contoh:
<PropertyGroup>
<CodesignDependsOn>$(CodesignDependsOn);DoThisBeforeCodesign</CodesignDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCodesign">
<Exec Command="echo This is executed right before the app is signed." />
</Target>
CodesignEntitlements
Jalur ke file pemberian izin yang menentukan pemberian izin yang diperlukan aplikasi.
Biasanya "Entitlements.plist".
Kami akan secara otomatis mengatur ini ke "Entitlements.plist" jika file tersebut ada di direktori akar proyek.
Ini dapat dicegah dengan mengatur properti EnableDefaultCodesignEntitlements ke false.
CodesignExtraArgs
Argumen tambahan diteruskan ke alat 'codesign' saat menandatangani bundel aplikasi.
CodesignKey
Menentukan kunci penandatanganan kode yang akan digunakan saat menandatangani bundel aplikasi.
CodesignKeychain
Rantai kunci yang akan digunakan selama penandatanganan kode.
Kunci Penandatanganan Kode
Menentukan kunci penandatanganan kode yang akan digunakan saat menandatangani bundel aplikasi.
Hanya berlaku untuk app macOS dan Mac Catalyst, tetapi disarankan untuk menggunakan properti CodesignKey sebagai gantinya (yang berfungsi di semua platform).
CodesignProvision
Menentukan profil provisi yang akan digunakan saat menandatangani bundel aplikasi.
CodesignResourceRules
Jalur ke ResourceRules.plist untuk menyalin ke bundel aplikasi.
Profil Penyediaan Wajib Pemrograman Ulang
Menentukan apakah profil provisi diperlukan saat menandatangani bundel aplikasi.
Secara default, kami memerlukan profil provisi jika:
- macOS, Mac Catalyst: profil provisi telah ditentukan (dengan properti CodesignProvision).
- iOS, tvOS: membangun untuk perangkat atau file pemberian izin telah ditentukan (dengan properti CodesignEntitlements ).
Mengatur properti ini ke true atau false akan mengambil alih logika default.
PaketSumberDayaKompresiPengikatan
Referensi asli dalam proyek pengikatan disalin ke direktori output selama proses build, di samping rakitan pengikatan (ke dalam sesuatu yang kami sebut "paket sumber daya pengikatan").
Referensi asli ini dapat disimpan dikompresi di dalam file zip (bernama $(AssemblyName).resources.zip, atau as-is, di dalam direktori bernama $(AssemblyName).resources.
Properti CompressBindingResourcePackage menentukan apakah akan membuat file zip atau direktori.
Nilai yang mungkin adalah:
-
auto: secara otomatis memutuskan opsi terbaik (saat ini file zip selalu dibuat, tetapi setelah Visual Studio mendukung jalur panjang di Windows, ini dapat berubah menjadi hanya paket sumber daya pengikatan zip dengan symlink). -
true: buat file zip -
false: membuat direktori
Defaultnya adalah auto.
Ini juga berlaku untuk bagaimana referensi asli disimpan di dalam NuGets.
Nota
Dalam beberapa kasus, dapat bermanfaat untuk memaksa penggunaan file zip di iOS, terutama ketika ada kerangka dengan file yang memiliki nama panjang, karena file zip terkadang dapat mengatasi masalah MAX_PATH di Windows.
CopySceneKitAssetsPath
Jalur lengkap ke alat copySceneKitAssets.
Perilaku defaultnya adalah menggunakan xcrun copySceneKitAssets.
CoreMLCompilerPath
Jalur lengkap ke alat coremlc.
Perilaku defaultnya adalah menggunakan xcrun coremlc.
BuatPaketAplikasiBergantungPada
Ini adalah titik ekstensi untuk build: pengembang dapat menambahkan target apa pun ke properti ini untuk menjalankan target tersebut saat membuat bundel aplikasi.
Contoh:
<PropertyGroup>
<CreateAppBundleDependsOn>$(CreateAppBundleDependsOn);DoThisBeforeCreatingAppBundle</CreateAppBundleDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingAppBundle">
<Exec Command="echo This is executed before the app bundle is created." />
</Target>
BuatKetergantunganIpa
Ini adalah titik ekstensi untuk build: pengembang dapat menambahkan target apa pun ke properti ini untuk menjalankan target tersebut saat membuat IPA.
Berlaku untuk semua platform yang membangun arsip IPA (saat ini iOS dan tvOS).
Contoh:
<PropertyGroup>
<CreateIpaDependsOn>$(CreateIpaDependsOn);DoThisBeforeCreatingIPA</CreateIpaDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingIPA">
<Exec Command="echo This is executed before the IPA is created." />
</Target>
BuatPaket
Jika paket (.pkg) harus dibuat untuk bundel aplikasi di akhir proses build.
Hanya berlaku untuk proyek macOS dan Mac Catalyst.
Lihat BuildIpa untuk proyek iOS dan tvOS.
DeviceSpecificBuild
Jika build harus spesifik untuk perangkat yang dipilih.
Berlaku untuk semua platform yang mendukung build khusus perangkat (saat ini iOS dan tvOS).
JalurKeluaranAntaraSpesifikPerangkat
Jalur output perantara yang akan digunakan saat build khusus perangkat diaktifkan.
Berlaku untuk semua platform yang mendukung build khusus perangkat (saat ini iOS dan tvOS).
JalurKeluaranKhususPerangkat
Jalur output yang akan digunakan saat build khusus perangkat diaktifkan.
Berlaku untuk semua platform yang mendukung build khusus perangkat (saat ini iOS dan tvOS).
Alamat Diagnostik
Alamat IP di mana dotnet-dsrouter sedang dieksekusi. Ini secara tipikal 127.0.0.1 saat membuat profil pada simulator, dan alamat IP komputer tempat dotnet-dsrouter saat membuat profil pada perangkat.
Ini adalah komponen alamat IP dari DiagnosticConfiguration'.
Secara implisit mengatur EnableDiagnostics ke true.
Secara default menjadi 127.0.0.1.
Konfigurasi Diagnostik
Nilai yang disediakan oleh dotnet-dsrouter untuk DOTNET_DiagnosticPorts seperti:
127.0.0.1:9000,suspend,connect127.0.0.1:9000,nosuspend,connect
Perhatikan bahwa karakter , harus di-escape dengan %2c jika diteruskan dalam command line ke dotnet build:
dotnet build -c Release -p:DiagnosticConfiguration=127.0.0.1:9000%2csuspend%2cconnect
Ini akan secara otomatis mengatur variabel lingkungan yang dipaketkan DOTNET_DiagnosticPorts di dalam aplikasi, sehingga variabel lingkungan diatur saat aplikasi diluncurkan.
Secara implisit mengatur EnableDiagnostics ke true.
Perilaku defaultnya adalah menghitung nilai ini dari properti diagnostik lainnya (DiagnosticAddress, DiagnosticPort, DiagnosticListenMode, dan DiagnosticSuspend).
Jika diatur, salah satu properti diagnostik lainnya akan diabaikan.
DiagnosticListenMode
Nilai yang disediakan oleh dotnet-dsrouter seperti connect atau listen, komponen mode mendengarkan DiagnosticConfiguration'.
Secara implisit mengatur EnableDiagnostics ke true.
Secara default menjadi listen.
DiagnosticPort
Nilai yang disediakan oleh dotnet-dsrouter seperti 9000, komponen port DiagnosticConfiguration'.
Secara implisit mengatur EnableDiagnostics ke true.
Secara default menjadi 9000.
DiagnosticSuspend
Nilai yang menentukan perilaku startup saat membuat profil aplikasi.
Atur ke true untuk menangguhkan aplikasi saat startup (menunggu server diagnostik tersambung ke aplikasi) atau false untuk meluncurkan aplikasi seperti biasa (dan menyambungkan server diagnostik ke aplikasi nanti).
Ini sesuai dengan nilai suspend/nosuspend dalam DiagnosticConfiguration.
Secara implisit mengatur EnableDiagnostics ke true.
Secara default menjadi false.
DittoPath
Jalur lengkap ke file eksekusi ditto.
Perilaku defaultnya adalah menggunakan /usr/bin/ditto.
Menyematkan Sumber Daya Sesuai Permintaan
Jika sumber daya sesuai permintaan perlu disematkan dalam bundel aplikasi.
Bawaan: true
Mengaktifkan EnableCodeSigning
Jika penandatanganan kode diaktifkan.
Penandatanganan kode diaktifkan secara default untuk semua platform; ini dapat dikesampingkan dengan properti ini.
AktifkanPengaturanBawaanCodesignEntitlements
Lihat CodesignEntitlements.
AktifkanSumberDayaSesuaiPermintaan
Jika sumber daya sesuai permintaan diaktifkan.
Default: salah untuk macOS, benar untuk semua platform lainnya.
AktifkanPenandatangananPaket
Jika .pkg yang dibuat (jika CreatePackage telah diaktifkan) harus ditandatangani.
Hanya berlaku untuk macOS dan Mac Catalyst.
Aktifkan Diagnostik
Aktifkan komponen yang diperlukan agar diagnostik (seperti pembuatan profil) berfungsi.
Ini diaktifkan secara default untuk build debug (ketika MtouchDebug atau MmpDebug diaktifkan), tetapi perlu diaktifkan secara manual sebelum membuat profil build rilis:
<PropertyGroup>
<EnableDiagnostics>true</EnableDiagnostics>
</PropertyGroup>
Ini akan meningkatkan ukuran aplikasi sedikit.
Hanya berlaku saat menggunakan runtime Mono (CoreCLR selalu mendukung diagnostik, sementara NativeAOT tidak pernah melakukannya).
AktifkanSGenConc
Mengaktifkan mode bersamaan untuk pengumpul sampah SGen.
Hanya berlaku untuk iOS, tvOS, dan Mac Catalyst (saat tidak menggunakan NativeAOT).
EventSourceSupport
Ketika diatur ke false, menonaktifkan dukungan EventSource dari .NET dalam aplikasi yang telah dipangkas. Menonaktifkan fitur ini akan mencegah alat diagnostik .NET seperti dotnet-counters berfungsi, tetapi dengan manfaat ukuran aplikasi yang berkurang.
Default: disetel ke false jika Optimize disetel ke true (default untuk build Release), kecuali $(EnableDiagnostics) diaktifkan.
MenghasilkanManifesAplikasi
Jika manifes aplikasi (Info.plist) harus dibuat.
Bawaan: true
DirektoriSumberDihasilkan
Tempat sumber yang dihasilkan dari generator disimpan.
SertakanSemuaIkonAplikasi
Atur properti IncludeAllAppIcons ke true untuk menyertakan semua ikon aplikasi secara otomatis dari semua katalog aset di aplikasi.
Contoh:
<PropertyGroup>
<IncludeAllAppIcons>true</IncludeAllAppIcons>
</PropertyGroup>
Lihat juga:
- Kelompok item AlternateAppIcon.
- Properti AppIcon.
Versi Minimum iOS
Menentukan versi iOS minimum yang dapat dijalankan aplikasi.
Berlaku untuk iOS; menetapkan nilai ini akan menetapkan SupportedOSPlatformVersion untuk proyek iOS (hanya).
IPhoneResourcePrefix
Direktori tempat sumber daya disimpan (awalan ini akan dihapus saat menyalin sumber daya ke bundel aplikasi).
Berlaku untuk proyek iOS, tvOS, dan Mac Catalyst.
Pertimbangkan untuk menggunakan properti AppBundleResourcePrefix terpadu sebagai gantinya.
Lihat juga MonoMacResourcePrefix dan XamMacResourcePrefix.
IpaIncludeArtwork
Jika karya seni harus disertakan dalam IPA.
Hanya berlaku untuk proyek iOS dan tvOS.
IpaPackageName
Menentukan nama file .ipa yang dihasilkan (tanpa jalur) saat membuat paket IPA (lihat BuildIpa). IpaPackagePath akan mengambil alih nilai ini.
Hanya berlaku untuk proyek iOS dan tvOS.
IpaPackageDir
Menentukan direktori file .ipa yang dihasilkan saat membuat paket IPA (lihat BuildIpa). IpaPackagePath akan mengambil alih nilai ini.
Hanya berlaku untuk proyek iOS dan tvOS.
IpaPackagePath
Menentukan jalur ke file .ipa yang dihasilkan saat membuat paket IPA (lihat BuildIpa).
Hanya berlaku untuk proyek iOS dan tvOS.
IsAppExtension
Jika proyek adalah ekstensi aplikasi.
IsBindingProject
Jika proyek adalah proyek yang mengikat.
IsXPCService
Jika ekstensi macOS adalah layanan xpc.
Hanya berlaku untuk proyek macOS.
LinkMode
Menentukan mode tautan untuk proyek (None, SdkOnly atau Full).
Berlaku untuk proyek macOS, tetapi properti ini tidak digunakan lagi, gunakan TrimMode sebagai gantinya.
Lihat juga MtouchLink.
LinkWithSwiftSystemLibraries
Jika dikonfigurasi ke true, build akan memberi tahu penghubung asli tentang di mana menemukan pustaka sistem Swift.
Ini berguna ketika perpustakaan asli menggunakan Swift dengan cara tertentu, dalam hal ini, linker asli perlu tahu di mana menemukan perpustakaan sistem Swift.
Saat ini ini berarti argumen ini akan diteruskan ke linker asli:
- -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/[platform]
- -L/Applications/Xcode.app/Contents/Developer/Platforms/[platform].platform/Developer/SDK/[platform].sdk/usr/lib/swift
Kumpulan argumen yang tepat dapat berubah di masa mendatang.
Versi Minimum MacCatalyst
Menentukan versi Mac Catalyst (iOS) minimum yang dapat dijalankan oleh aplikasi.
Berlaku untuk Mac Catalyst; mengatur nilai ini akan mengatur SupportedOSPlatformVersion hanya untuk proyek Mac Catalyst.
MaciOSPersiapanUntukMembangunBergantungPada
Properti yang dipisahkan dengan titik koma yang dapat digunakan untuk memperluas proses build. Target MSBuild yang ditambahkan ke properti ini akan dijalankan di awal build untuk jenis proyek aplikasi dan pustaka. Properti ini kosong secara default.
Contoh:
<PropertyGroup>
<MaciOSPrepareForBuildDependsOn>$(MaciOSPrepareForBuildDependsOn);MyCustomTarget</MaciOSPrepareForBuildDependsOn>
</PropertyGroup>
<Target Name="MyCustomTarget" >
<Message Text="Running target: 'MyCustomTarget'" Importance="high" />
</Target>
Properti ini diperkenalkan di .NET 9.
macOSMinimumVersion
Menentukan versi macOS minimum yang dapat dijalankan oleh aplikasi.
Berlaku untuk macOS; menetapkan nilai ini akan menetapkan SupportedOSPlatformVersion untuk proyek macOS saja.
MacOSXSdkVersion
Versi macOS SDK yang akan digunakan untuk build.
Bawaan: secara otomatis terdeteksi sesuai dengan versi bawaan yang disertakan dengan Xcode yang dipilih.
Lihat juga MtouchSdkVersion.
MarshalManagedExceptionMode
Pilih cara penanganan pengecualian terkelola ketika menemui frame asli selama pembongkaran tumpukan dalam proses pengecualian terkelola.
Nilai yang valid:
-
default: Saat ini, ini adalahthrowobjectivecexception. -
unwindnativecode: Ini tidak tersedia saat menggunakan runtime CoreCLR. -
throwobjectivecexception: Tangkap pengecualian terkelola dan ubah menjadi pengecualian Objective-C. -
abort: Batalkan proses. -
disable: Nonaktifkan penyadapan pengecualian terkelola apa pun. Untuk MonoVM, ini setara denganunwindnativecode, untuk CoreCLR, ini setara denganabort.
Untuk informasi selengkapnya, lihat Marshaling Pengecualian dan MarshalObjectiveCExceptionMode.
Mode Pengecualian MarshalObjectiveC
Pilih bagaimana pengecualian Objective-C ditangani saat menghadapi bingkai terkelola selama membuka tumpukan ketika memproses pengecualian Objective-C.
Nilai yang valid:
-
default: Saat ini, ini adalahthrowmanagedexception. -
unwindmanagedcode: Ini tidak tersedia saat menggunakan runtime CoreCLR. -
throwmanagedexception: Tangkap pengecualian Objective-C, dan konversikan menjadi pengecualian terkelola. -
abort: Batalkan proses. -
disable: Nonaktifkan penyadapan pengecualian Objective-C.
Untuk informasi selengkapnya, lihat Pemarshalan Pengecualian dan MarshalManagedExceptionMode.
MdimportPath
Jalur lengkap ke alat mdimport.
Perilaku defaultnya adalah menggunakan xcrun mdimport.
MetalLibPath
Jalur lengkap ke alat metallib (Metal Linker).
Perilaku defaultnya adalah menggunakan xcrun metallib.
MetalPath
Jalur lengkap ke pengompilasi Metal.
Perilaku defaultnya adalah menggunakan xcrun metal.
MetricsSupport
Ketika diatur ke false, menonaktifkan dukungan Metrik .NET dari aplikasi yang dipangkas. Menonaktifkan fitur ini akan mencegah API seperti System.Diagnostics.Metrics berfungsi, tetapi dengan manfaat pengurangan ukuran aplikasi.
Default: disetel ke false jika Optimize disetel ke true (default untuk build Release), kecuali $(EnableDiagnostics) diaktifkan.
MmpDebug
Mengaktifkan mode debug untuk pembuatan app bundle.
Hanya berlaku untuk proyek macOS.
Lihat juga MtouchDebug.
PemangkasanAtributAgresifMobile
Properti ini menentukan apakah banyak atribut yang sangat jarang diperlukan saat runtime harus dipangkas.
Hal ini diaktifkan secara default.
Perhatikan bahwa meskipun atribut yang dihapus sangat jarang digunakan, secara teknis mungkin penghapusan dapat mengubah perilaku runtime.
Misalnya, System.Xml.Serialization akan berperilaku berbeda jika konstruktor memiliki [Obsolete] atribut (yang merupakan salah satu atribut yang dihapus). Ini adalah risiko yang cukup rendah untuk membenarkan penghapusan atribut ini secara default karena penghematan ukuran.
Daftar atribut yang dihapus dapat berubah di masa mendatang, tetapi pada saat penulisan ini (untuk .NET 10), ini adalah atribut:
- 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
Properti ini diperkenalkan dalam .NET 10.
MonoBundlingExtraArgs
Argumen tambahan yang menentukan cara membuat app bundle.
Hanya berlaku untuk proyek macOS.
Properti ini tidak digunakan lagi, gunakan AppBundleExtraOptions sebagai gantinya.
MonoMacResourcePrefix
Direktori tempat sumber daya disimpan (awalan ini akan dihapus saat menyalin sumber daya ke bundel aplikasi).
Hanya berlaku untuk proyek macOS.
Pertimbangkan untuk menggunakan properti AppBundleResourcePrefix terpadu sebagai gantinya.
Lihat juga IPhoneResourcePrefix dan XamMacResourcePrefix.
MonoUseCompressedInterfaceBitmap
Ini mengarahkan runtime Mono untuk menggunakan versi bitmap antarmuka terkompresi (bitmap antarmuka digunakan untuk menentukan apakah jenis tertentu mengimplementasikan antarmuka tertentu).
Bitmap ini dapat menggunakan sejumlah besar memori saat runtime, khususnya untuk aplikasi yang memiliki sejumlah besar antarmuka.
Pengaturan ini dinonaktifkan secara default, tetapi dapat diaktifkan seperti ini, yang akan mengurangi jumlah memori yang digunakan saat runtime:
<PropertyGroup>
<MonoUseCompressedInterfaceBitmap>true</MonoUseCompressedInterfaceBitmap>
</PropertyGroup>
Kelemahannya adalah pemeriksaan tipe (obj is SomeInterface) akan lebih lambat.
Hanya berlaku saat menggunakan runtime Mono.
MtouchDebug
Mengaktifkan mode debug untuk pembuatan app bundle.
Berlaku untuk proyek iOS, tvOS, dan Mac Catalyst.
Lihat juga MmpDebug.
MtouchEnableSGenConc
Mengaktifkan mode bersamaan untuk pengumpul sampah SGen.
Hanya berlaku untuk iOS, tvOS, dan Mac Catalyst saat tidak menggunakan NativeAOT.
Properti ini tidak digunakan lagi, gunakan EnableSGenConc sebagai gantinya.
MtouchExtraArgs
Argumen tambahan yang menentukan cara membuat app bundle.
Hanya berlaku untuk proyek iOS, tvOS, dan Mac Catalyst.
Properti ini tidak digunakan lagi, gunakan AppBundleExtraOptions sebagai gantinya.
MtouchInterpreter
Memungkinkan penerjemah, dan secara opsional mengambil daftar rakitan yang dipisahkan koma untuk menafsirkan (jika diawali dengan tanda minus, rakitan akan dikompilasi AOT sebagai gantinya). 'all' dapat digunakan untuk menentukan semua rakitan. Argumen ini dapat ditentukan beberapa kali.
Contoh:
<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>
Cara cepat untuk MtouchInterpreter adalah dengan menyetel UseInterpreter=true, yang setara dengan MtouchInterpreter=all.
Jika UseInterpreter dan MtouchInterpreter diatur, MtouchInterpreter lebih diutamakan.
Berlaku untuk app iOS, tvOS, dan Mac Catalyst (saat tidak menggunakan NativeAOT).
Perilaku defaultnya adalah tidak mengaktifkan penerjemah.
Nota
MAUI mengubah default dengan mengatur UseInterpreter=true untuk konfigurasi "Debug".
MtouchLink
Menentukan mode tautan untuk proyek (None, SdkOnly, Full).
Berlaku untuk proyek iOS, tvOS, dan Mac Catalyst, tetapi properti ini tidak digunakan lagi, gunakan TrimMode sebagai gantinya.
Lihat juga LinkMode.
MtouchSdkVersion
Versi iOS atau tvOS SDK yang akan digunakan untuk build.
Bawaan: secara otomatis terdeteksi sesuai dengan versi bawaan yang disertakan dengan Xcode yang dipilih.
Lihat juga MacOSXSdkVersion.
MtouchUseLlvm
Properti boolean yang menentukan apakah kompilasi AOT harus dilakukan menggunakan LLVM.
Berlaku untuk proyek iOS, tvOS, dan Mac Catalyst.
Bawaan
- Pada iOS dan tvOS: diaktifkan untuk build rilis (di mana
Configuration="Release"). - Di Mac Catalyst: tidak pernah diaktifkan secara default.
NoBindingEmbedding
Properti boolean yang menentukan apakah pustaka asli dalam proyek pengikatan harus disematkan dalam rakitan terkelola, atau dimasukkan ke dalam direktori .resources di samping rakitan terkelola.
Nilai default adalah true (yang berarti pustaka asli akan tidak disematkan dalam rakitan terkelola).
Nota
Xcframeworks tidak akan berfungsi dengan benar jika disematkan di dalam managed assembly (jika properti ini bukan true).
NoDSymUtil
Properti boolean yang menentukan apakah pembuatan file .dSYM harus dinonaktifkan.
Bawaan
-
trueuntuk iOS dan tvOS saat membangun simulator. -
trueuntuk macOS dan Mac Catalyst, kecuali saat membuat arsip (ArchiveOnBuild=true)
Ini berarti arsip .dSYM akan dihasilkan dalam kasus berikut (secara default):
- Di iOS dan tvOS saat membangun perangkat.
- Di macOS dan Mac Catalyst saat membuat arsip (
ArchiveOnBuild=true).
NoSymbolStrip
Properti boolean yang menentukan apakah simbol debug dihapus dari aplikasi pada waktu build.
Perilaku defaultnya adalah menyimpan simbol debug untuk:
-
Debugkompilasi untuk platform-platform desktop. - Simulator dibangun untuk platform seluler.
Contoh untuk menyimpan simbol debug:
<PropertyGroup>
<NoSymbolStrip>true</NoSymbolStrip>
</PropertyGroup>
OnDemandResourcesInitialInstallTags
Properti string yang menentukan tag penginstalan awal untuk sumber daya sesuai permintaan.
OnDemandResourcesPrefetchOrder
Properti string yang menentukan urutan prefetch untuk sumber daya sesuai permintaan.
OnDemandResourcesUrl
Properti string yang menentukan url sumber daya untuk sumber daya yang dapat diminta.
OptimizePNGs
Properti boolean yang menentukan apakah gambar png harus dioptimalkan.
KetergantunganOptimasiGambarPng
Ini adalah titik ekstensi untuk build: pengembang dapat menambahkan target apa pun ke properti ini untuk menjalankan target tersebut sebelum gambar png dioptimalkan.
Contoh:
<PropertyGroup>
<OptimizePngImagesDependsOn>$(OptimizePngImagesDependsOn);MyCustomTarget</OptimizePngImagesDependsOn>
</PropertyGroup>
<Target Name="MyCustomTarget" >
<Message Text="Running target: 'MyCustomTarget'" Importance="high" />
</Target>
OptimizePropertyLists
Properti boolean yang menentukan apakah daftar properti (plists) harus dioptimalkan.
DaftarPropertiOptimalBergantungPada
Ini adalah titik ekstensi untuk build: pengembang dapat menambahkan target apa pun ke properti ini untuk menjalankan target tersebut sebelum daftar properti (plist) dioptimalkan.
Contoh:
<PropertyGroup>
<OptimizePropertyListsDependsOn>$(OptimizePropertyListsDependsOn);MyCustomTarget</OptimizePropertyListsDependsOn>
</PropertyGroup>
<Target Name="MyCustomTarget" >
<Message Text="Running target: 'MyCustomTarget'" Importance="high" />
</Target>
KunciTandaTanganPaket
Menentukan kunci penandatanganan kode untuk menandatangani paket saat membuat .pkg untuk proyek macOS dan Mac Catalyst.
Hanya berlaku untuk app macOS dan Mac Catalyst.
PackagingExtraArgs
Menentukan argumen tambahan untuk diteruskan ke alat 'productbuild' saat membuat .pkg untuk proyek macOS dan Mac Catalyst.
Hanya berlaku untuk app macOS dan Mac Catalyst.
PkgPackagePath
Menentukan jalur ke file .pkg yang dihasilkan saat membuat paket (lihat CreatePackage).
Hanya berlaku untuk app macOS dan Mac Catalyst.
PlutilPath
Jalur lengkap ke alat baris perintah plutil.
Perilaku defaultnya adalah menggunakan xcrun plutil.
PngCrushPath
Jalur lengkap ke alat baris perintah pngcrush.
Perilaku defaultnya adalah menggunakan xcrun pngcrush.
ProcessEnums
Properti boolean yang menentukan apakah enum harus diproses sebagai definisi api dalam proyek pengikatan.
ProductBuildPath
Jalur lengkap ke alat productbuild.
Perilaku defaultnya adalah menggunakan xcrun productbuild.
DefinisiProduk
Templat definisi produk (.plist) yang akan digunakan saat membuat definisi produk untuk diteruskan ke alat build produk saat membuat paket (.pkg).
Hanya berlaku untuk app macOS dan Mac Catalyst.
ReferensiSimbolAsli
Grup item ReferenceNativeSymbol dapat digunakan untuk menentukan bagaimana kita harus menangani simbol asli tertentu: mengabaikannya, atau meminta linker asli untuk menyimpannya (dengan meneruskan simbol sebagai -u ... atau dalam file simbol ke linker asli).
Ada dua jenis metadata yang didukung:
-
SymbolType: baikObjectiveCClass,Function, atauField. Digunakan untuk menghitung nama asli lengkap simbol (misalnya, simbol asli untukMyClasskelas Objective-C_OBJC_CLASS_$_MyClass, sementara untuk fungsiMyFunctionitu hanya_MyFunction. -
SymbolMode: baikIgnoreatau tidak ditetapkan.Ignoreberarti tidak meneruskan simbol yang diberikan ke linker asli, defaultnya adalah melakukannya.
SymbolType diperlukan, sementara SymbolMode tidak.
Contoh simbol untuk disimpan:
<ItemGroup>
<ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" />
</ItemGroup>
Contoh simbol untuk diabaikan:
<ItemGroup>
<ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" SymbolMode="Ignore" />
</ItemGroup>
Fungsi RequireLinkWithAttributeForObjectiveCClassSearch (Memerlukan Tautan Dengan Atribut Untuk Pencarian Kelas Objective-C)
Kami akan secara otomatis memindai semua pustaka untuk kelas terkelola yang memetakan ke kelas Objective-C yang ada, lalu membuat referensi asli pada waktu build untuk kelas Objective-C tersebut.
Dengan cara ini, linker asli tidak akan menghapus kelas Objective-C ini, dengan anggapan bahwa mereka tidak digunakan.
Namun, ini dapat menyebabkan masalah jika kelas terkelola mereferensikan kelas Objective-C yang tidak ada. Perbaikan yang tepat untuk ini adalah menghapus kelas terkelola tersebut dari build, tetapi ini mungkin rumit, khususnya jika kelas terkelola berasal dari referensi biner (seperti NuGet).
Dalam kasus ini, dimungkinkan untuk mengatur properti RequireLinkWithAttributeForObjectiveCClassSearch ke true sehingga kami hanya akan memindai pustaka dengan atribut [LinkWith] untuk kelas Objective-C:
<PropertyGroup>
<RequireLinkWithAttributeForObjectiveCClassSearch>true</RequireLinkWithAttributeForObjectiveCClassSearch>
</PropertyGroup>
RunWithOpen
Properti ini menentukan apakah aplikasi diluncurkan menggunakan open perintah di macOS, atau apakah aplikasi yang dapat dieksekusi dijalankan secara langsung.
Ini hanya berlaku untuk app macOS dan Mac Catalyst.
Nilai defaultnya adalah true. Dalam mode ini, aplikasi akan diluncurkan oleh macOS sebagai aplikasi UI lainnya, output stdout/stderr apa pun akan ditelan oleh macOS, dan dotnet run perintah akan selesai segera setelah aplikasi diluncurkan.
Jika diatur ke false, output stdout/stderr apa pun akan dicetak ke terminal saat ini, dan dotnet run perintah tidak akan selesai sampai aplikasi telah keluar.
Properti berikut dapat digunakan untuk mengonfigurasi perilaku saat diatur ke true (yaitu menggunakan open perintah ):
OpenNewInstance
Jika instans baru akan dibuka jika aplikasi sudah berjalan (default ke false).
Ini akan meneruskan -n ke open jika disetel menjadi true.
Contoh:
$ dotnet run -p:OpenNewInstance=false
OpenWaitForExit
Jika 'dotnet run' harus menunggu hingga aplikasi keluar (menggunakan nilai default false).
Ini akan meneruskan -W ke open jika disetel menjadi true.
Contoh:
$ dotnet run -p:OpenWaitForExit=true
OpenArguments
Properti ini dapat digunakan untuk meneruskan argumen tambahan ke open perintah .
Contoh (untuk mengatur variabel lingkungan):
$ dotnet run -p:OpenArguments="--env VARIABLE1=VALUE1 --env VARIABLE2=value2"
Contoh (untuk mengalihkan stdout dan stderr ke file):
$ dotnet run -p:OpenArguments="--stdout /tmp/stdout.txt --stderr /tmp/stderr.txt"
Jalankan man open untuk melihat daftar semua opsi open yang diterima.
StandardOutputPath
Properti ini dapat digunakan untuk mengalihkan output stdout dari aplikasi ke file.
Contoh penulisan ke file:
$ dotnet run -p:StandardOutputPath=stdout.txt
Contoh penulisan ke terminal saat ini:
$ dotnet run -p:StandardOutputPath=$(tty)
[... Console.WriteLine output from app ...]
Catatan: ini juga dapat dicapai dengan melewati --stdout ... menggunakan properti OpenArguments .
JalurKesalahanStandar
Properti ini dapat digunakan untuk mengalihkan output stderr dari aplikasi ke file.
Contoh penulisan ke file:
$ dotnet run -p:StandardErrorPath=stderr.txt
Contoh penulisan ke terminal saat ini:
$ dotnet run -p:StandardErrorPath=$(tty)
[... Console.Error.WriteLine output from app ...]
Catatan: ini juga dapat dicapai dengan melewati --stderr ... menggunakan properti OpenArguments .
StandardInputPath
Properti ini dapat digunakan untuk mengalihkan input stdin ke aplikasi dari file.
Contoh:
$ dotnet run -p:StandardInputPath=stdin.txt
Catatan: ini juga dapat dicapai dengan melewati --stdin ... menggunakan properti OpenArguments .
SdkIsSimulator
Properti ini adalah properti baca-saja (pengaturan itu tidak akan berpengaruh) yang menentukan apakah kita sedang membangun untuk simulator atau tidak.
Ini hanya diatur setelah impor dan properti dievaluasi. Ini berarti properti tidak ditentukan ketika mengevaluasi properti dalam file proyek, sehingga ini tidak akan berfungsi:
<PropertyGroup>
<EnableCodeSigning Condition="'$(SdkIsSimulator)' == 'true'">false</EnableCodeSigning>
</PropertyGroup>
Namun, salah satu dari hal berikut berfungsi:
<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>
Catatan: properti ini akan selalu ada false di macOS dan Mac Catalyst.
StripPath
Jalur lengkap ke alat baris perintah strip.
Perilaku defaultnya adalah menggunakan xcrun strip.
VersiPlatformOSYangDidukung
Menentukan versi OS minimum yang dapat dijalankan aplikasi.
Anda juga dapat menggunakan properti khusus platform:
- iOSMinimumVersion
- tvOSMinimumVersion
- VersiMinimalmacOS
- Versi Minimum MacCatalyst
TrimMode
Menentukan granularitas pemangkasan.
Opsi yang valid adalah:
-
full: Pangkas setiap rakitan. -
partial: Pangkas komponen yang telah memilih pemangkasan. -
copy: Jangan memangkas rakitan apa pun.
Lihat TrimMode untuk informasi selengkapnya tentang properti TrimMode.
Nota
Untuk alasan teknis, pemangkas harus berjalan untuk semua proyek iOS, tvOS, macOS, dan Mac Catalyst, bahkan jika tidak ada rakitan yang akan dipangkas. Untuk alasan ini, tidak valid untuk menonaktifkan pemangkasan dengan mengatur PublishTrimmed ke false - untuk menonaktifkan pemangkasan, atur TrimMode=copy sebagai gantinya (kesalahan build akan dimunculkan jika PublishTrimmed diatur ke false).
Properti TrimMode setara dengan properti MtouchLink yang ada (untuk properti iOS, tvOS, dan Mac Catalyst) dan LinkMode (untuk macOS), tetapi nilai properti yang valid berbeda (meskipun semantiknya sama):
| MtouchLink/LinkMode | TrimMode |
|---|---|
| Penuh | penuh |
| SdkOnly | Parsial |
| Tidak | menyalin |
Ke depannya, properti MtouchLink dan LinkMode akan tidak digunakan lagi, silakan gunakan TrimMode sebagai gantinya.
Mode pemangkasan default tergantung pada banyak faktor, dan juga dapat berubah di masa depan.
Nilai default (per .NET 9) saat ini adalah:
- iOS dan iOS:
partialsaat membangun perangkat,copysaat membangun simulator. - macOS: selalu
copy. - Mac Catalyst:
partialsaat membangun konfigurasi"Release",copysebaliknya.
Pengecualian:
- Nilai default selalu
fullsaat membangun dengan NativeAOT. - MAUI mengubah nilai default menjadi
copyketika membangun untuk konfigurasiDebugdan penerjemah diaktifkan menggunakan UseInterpreter (yang juga diaktifkan MAUI secara default saat menggunakan konfigurasi"Debug").
Nota
Mode pemangkasan default dapat berubah di masa mendatang.
Versi Minimum tvOS
Menentukan versi tvOS minimum yang dapat dijalankan aplikasi.
Berlaku untuk tvOS; menetapkan nilai ini akan menetapkan SupportedOSPlatformVersion untuk proyek tvOS saja.
UseFloatingTargetPlatformVersion
Properti boolean yang mengontrol apakah proyek pustaka harus menggunakan versi platform target yang tidak tetap atau versi platform terlama yang tersedia.
Secara default (dimulai di .NET 10), proyek pustaka tanpa eksplisit TargetPlatformVersion akan menggunakan rakitan referensi terlama yang tersedia untuk versi .NET saat ini. Ini memastikan kompatibilitas maksimum dan memungkinkan kode pustaka untuk dikompilasi terhadap permukaan API minimum yang tersedia untuk kerangka kerja target.
Namun, perilaku default ini berarti bahwa proyek pustaka dibangun secara berbeda dari proyek yang dapat dieksekusi (yang menggunakan versi platform terbaru). Kode yang berfungsi dalam proyek yang dapat dieksekusi mungkin tidak dikompilasi saat dipindahkan ke proyek pustaka jika menggunakan API hanya tersedia dalam versi platform yang lebih baru.
Mengatur properti ini untuk true menonaktifkan pilihan otomatis versi platform terlama, memungkinkan proyek pustaka untuk menggunakan versi platform default (terbaru) seperti yang dilakukan proyek yang dapat dieksekusi.
Contoh:
<PropertyGroup>
<!-- Use the latest platform version instead of the oldest -->
<UseFloatingTargetPlatformVersion>true</UseFloatingTargetPlatformVersion>
</PropertyGroup>
Default: false (gunakan versi platform terlama untuk proyek pustaka di .NET 10+).
Properti ini hanya berlaku untuk proyek pustaka (OutputType=Library) yang bukan ekstensi aplikasi dan belum menentukan versi platform target eksplisit (versi platform target adalah nomor versi opsional di akhir TargetFramework properti, misalnya untuk TargetFramework net10.0-ios26.0 versi platform target secara 26.0eksplisit ).
Properti ini diperkenalkan dalam .NET 10.
Gunakan Runtime Diperkeras
Properti boolean yang menentukan apakah runtime yang diperketat diaktifkan.
Berlaku untuk proyek macOS dan Mac Catalyst.
GunakanPenerjemah
Mengaktifkan penerjemah (untuk semua rakitan).
Ini setara dengan pengaturan MtouchInterpreter=all.
Berlaku untuk app iOS, tvOS, dan Mac Catalyst (saat tidak menggunakan NativeAOT).
Perilaku defaultnya adalah tidak mengaktifkan penerjemah.
Nota
MAUI mengubah default dengan mengatur UseInterpreter=true untuk konfigurasi "Debug".
Lihat MtouchInterpreter
UseNativeHttpHandler
Apakah handler http asli harus menjadi handler http default atau tidak.
Bawaan: benar untuk semua platform kecuali macOS.
Validasi Hak dan Akses
Pilih apakah hak akses yang diminta oleh aplikasi harus divalidasi.
Nilai yang valid untuk properti ini:
-
disable: Validasi dinonaktifkan. -
warn: Setiap kegagalan validasi ditampilkan sebagai peringatan. -
error: Setiap kegagalan validasi ditampilkan sebagai kesalahan. Ini adalah default.
Proses validasi mungkin tidak memvalidasi setiap hak, juga tidak dijamin tidak berlebihan.
Jika validasi gagal untuk hak akses yang benar-benar berfungsi, silakan laporkan masalah baru.
ValidateXcodeVersion
Pilih apakah versi Xcode saat ini harus divalidasi.
Nilai defaultnya adalah memvalidasi; atur ke false untuk menonaktifkan.
Nota
Menggunakan yang berbeda dari versi yang direkomendasikan kemungkinan akan menghasilkan masalah di kemudian hari dalam proses build.
XamMacResourcePrefix
Direktori tempat sumber daya disimpan (awalan ini akan dihapus saat menyalin sumber daya ke bundel aplikasi).
Berlaku untuk proyek macOS.
Pertimbangkan untuk menggunakan properti AppBundleResourcePrefix terpadu sebagai gantinya.
Lihat juga IPhoneResourcePrefix dan MonoMacResourcePrefix.
ZipPath
Jalur lengkap ke alat baris perintah zip.
Perilaku defaultnya adalah menggunakan xcrun zip.