Bahasa

RuntimeCompatibilityOptions Kelas

Definisi

Aplikasi Anda dapat menggunakan kelas ini untuk mengonfigurasi opsi kompatibilitas yang diinginkan untuk perilaku perubahan Windows App Runtime yang ditambahkan dalam pembaruan layanan. Kelas ini hanya digunakan untuk mengatur perilaku runtime, dan tidak dapat digunakan untuk mengkueri opsi yang diterapkan.

public ref class RuntimeCompatibilityOptions sealed
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.Windows.ApplicationModel.WindowsAppRuntime.RuntimeCompatibilityContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Windows.ApplicationModel.WindowsAppRuntime.RuntimeCompatibilityContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RuntimeCompatibilityOptions final
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.Windows.ApplicationModel.WindowsAppRuntime.RuntimeCompatibilityContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Windows.ApplicationModel.WindowsAppRuntime.RuntimeCompatibilityContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RuntimeCompatibilityOptions
function RuntimeCompatibilityOptions()
Public NotInheritable Class RuntimeCompatibilityOptions
Warisan
Object Platform::Object IInspectable RuntimeCompatibilityOptions
Atribut

Keterangan

Ada dua cara di mana Anda dapat menyebarkan SDK Aplikasi Windows: Dependen kerangka kerja; atau mandiri. Untuk detail, dan keuntungan dan masalah, lihat gambaran umum penyebaran SDK Aplikasi Windows.

Kelas RuntimeCompatibilityOptions memberi Anda kompatibilitas yang dapat dikonfigurasi aplikasi. Ini dimaksudkan untuk mencegah masalah dengan penyebaran yang bergantung pada Kerangka Kerja, memungkinkan aplikasi Anda untuk menggunakan opsi tersebut dengan yakin bahwa itu tidak akan rusak.

Selain itu, jika Anda menemukan masalah kompatibilitas dalam rilis layanan, Anda masih dapat bergerak maju dengan menonaktifkan perubahan bermasalah untuk sementara waktu. Bahkan aplikasi mandiri dapat diperbarui ke paket baru dengan keyakinan bahwa kompatibilitas yang dapat dikonfigurasi aplikasi akan memastikan pembaruan yang berhasil.

RuntimeCompatibilityOptions memiliki API untuk mengontrol perilaku perubahan layanan. Ada juga properti yang dapat diatur dalam file proyek aplikasi Anda untuk secara otomatis menggunakan API baru dengan nilai yang ditentukan.

RuntimeCompatibilityOptions mengonfigurasi perubahan mana dalam rilis layanan SDK Aplikasi Windows diaktifkan. Secara default, semua perubahan diaktifkan, tetapi Anda dapat menggunakan RuntimeCompatibilityOptions untuk mengunci perilaku runtime ke tingkat patch tertentu, atau untuk menonaktifkan perubahan tertentu:

  1. Pilih tingkat patch: Anda dapat menentukan perilaku rilis layanan mana yang ingin Anda gunakan. Misalnya, aplikasi Anda dapat menentukan bahwa aplikasi menginginkan perilaku tingkat patch 1.7.2, yang akan memiliki SDK Aplikasi Windows berjalan di tingkat patch tersebut, bahkan jika 1.7.3 atau yang lebih baru diinstal. Kemampuan ini memungkinkan Anda mengontrol kapan aplikasi Anda mendapatkan perbaikan atau perubahan perilaku baru, bahkan saat Anda tidak menggunakan mode mandiri.
  2. Nonaktifkan perubahan tertentu untuk sementara waktu: Jika aplikasi Anda mengalami masalah dengan perubahan tertentu dalam pembaruan layanan, Maka Anda dapat menonaktifkan perubahan tersebut sambil tetap mendapat manfaat dari perubahan atau fitur lain dalam pembaruan tersebut. Semua perubahan diaktifkan secara default untuk tingkat patch yang digunakan. Menonaktifkan perubahan adalah ukuran sementara, yang memberikan waktu bagi perbaikan untuk dirilis dalam pembaruan SDK Aplikasi Windows mendatang, atau bagi Anda untuk menerapkan pembaruan di aplikasi Anda.

Berikut adalah contoh untuk menentukan tingkat patch, dan menonaktifkan perubahan tertentu:

void ApplyRuntimeCompatibilityOptions() 
{
    var compatibilityOptions = new RuntimeCompatibilityOptions();
    compatibilityOptions.PatchLevel1 = new WindowsAppRuntimeVersion(1,7,3);
    compatibilityOptions.PatchLevel2 = new WindowsAppRuntimeVersion(1,8,2);
    compatibilityOptions.DisabledChanges.Add(RuntimeCompatibilityChange.SampleApiCrashFix);
    compatibilityOptions.Apply();
}

Anda harus menerapkan RuntimeCompatibilityOptions di awal proses, sebelum API SDK Aplikasi Windows lainnya dipanggil; atau tepat setelah menginisialisasi runtime Windows App.

PatchLevel1 dan PatchLevel2 hanyalah dua bidang untuk mengatur tingkat patch yang relevan. Kebutuhan ini tidak cocok dengan versi spesifik Windows App Runtime, atau dalam urutan tertentu. Jadi valid untuk mengatur PatchLevel1 ke 1.8.2 dan PatchLevel2 ke 1.7.3, misalnya. Dan, dalam contoh di atas, saat memperbarui aplikasi ke 1.9, Anda mungkin memilih untuk hanya memperbarui PatchLevel1 ke 1.9.3, dan meninggalkan PatchLevel2 sebagai 1.8.2.

Menentukan RuntimeCompatibilityOptions dalam file proyek aplikasi Anda

Atau, Anda dapat menggunakan file proyek aplikasi untuk menentukan tingkat patch dan perubahan yang dinonaktifkan, alih-alih langsung menggunakan RuntimeCompatibilityOptions. Pendekatan ini memiliki keuntungan memastikan bahwa opsi diterapkan lebih awal pada waktu yang tepat. Berikut adalah contoh cara menentukan tingkat patch dan perubahan yang dinonaktifkan dalam file proyek Anda (seperti .csproj atau .vcxproj):

<PropertyGroup>
  <WindowsAppSDKRuntimePatchLevel1>1.7.3</WindowsAppSDKRuntimePatchLevel1>
  <WindowsAppSDKRuntimePatchLevel2>1.8.2</WindowsAppSDKRuntimePatchLevel2>
  <WindowsAppSDKDisabledChanges>SampleApiCrashFix, OtherSampleApiCrashFix</WindowsAppSDKDisabledChanges>
</PropertyGroup>

Properti WindowsAppSDKDisabledChanges adalah daftar nilai RuntimeCompatibilityChange yang dipisahkan koma untuk dinonaktifkan.

Perilaku tanpa PatchLevel yang ditentukan

Jika tidak ada PatchLevel1 atau PatchLevel2 yang ditentukan, atau jika tidak ada nilai yang cocok dengan versi major.minor dari runtime yang digunakan, maka runtime akan menggunakan tingkat patch terbaru. Dengan kata lain, runtime akan berjalan dengan semua perubahan layanan diaktifkan (sama seperti cara kerja SDK Aplikasi Windows jika Anda tidak menggunakan API ini).

Konstruktor

Nama Deskripsi
RuntimeCompatibilityOptions()

Membuat objek RuntimeCompatibilityOptions default baru.

Properti

Nama Deskripsi
DisabledChanges

Mendapatkan atau mengatur daftar opsional perubahan layanan tertentu untuk dinonaktifkan.

Catatan rilis saluran stabil terbaru untuk SDK Aplikasi Windows mencantumkan nama setiap perubahan yang dapat Anda nonaktifkan.

PatchLevel1

Mendapatkan atau mengatur tingkat patch opsional untuk digunakan jika versi runtime cocok dengan versi major.minor.

Jika aplikasi Anda tidak dalam proses transisi ke versi baru SDK Aplikasi Windows, maka Anda hanya dapat mengatur tingkat patch yang satu ini.

PatchLevel2

Mendapatkan atau mengatur tingkat patch opsional untuk digunakan jika versi runtime cocok dengan versi major.minor.

Properti ini memungkinkan pengaturan tingkat patch kedua untuk membantu transisi aplikasi Anda ke versi baru SDK Aplikasi Windows. Ini adalah kenyamanan untuk memungkinkan tingkat patch untuk versi lama dan baru ditentukan selama transisi. Aplikasi yang tidak dalam proses transisi harus mengatur hanya satu tingkat patch yang ingin mereka gunakan.

Mengatur kedua tingkat patch untuk versi major.minor yang sama, seperti 1.7.3 dan 1.7.4, tidak diizinkan dan akan menghasilkan kesalahan saat memanggil Terapkan.

Metode

Nama Deskripsi
Apply()

Menerapkan opsi kompatibilitas ke runtime.

Berlaku untuk