RuntimeCompatibilityOptions Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Приложение может использовать этот класс для настройки любых необходимых параметров совместимости для приложение для Windows поведения среды выполнения изменений, добавленных в обновления обслуживания. Этот класс используется только для задания поведения среды выполнения и не может использоваться для запроса примененных параметров.
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
- Наследование
- Атрибуты
Комментарии
Существует два способа развертывания Windows App SDK: зависимые от платформы или автономные. Дополнительные сведения и преимущества и проблемы см. в Windows App SDK обзоре развертывания.
Класс RuntimeCompatibilityOptions обеспечивает совместимость, настраиваемую приложением. Он предназначен для предотвращения проблем с развертыванием, зависящим от платформы, что позволяет приложению использовать этот параметр с уверенностью в том, что он не будет нарушен.
Кроме того, если в выпуске обслуживания возникла проблема совместимости, вы по-прежнему сможете двигаться вперед, временно отключив проблемные изменения. Даже автономное приложение может обновить новый пакет с уверенностью в том, что совместимость, настраиваемая приложением, обеспечит успешное обновление.
RuntimeCompatibilityOptions имеет API для управления поведением изменений обслуживания. Существуют также свойства, которые можно задать в файле проекта приложения, чтобы автоматически использовать новые API с указанными значениями.
RuntimeCompatibilityOptions настраивает, какие изменения в выпусках обслуживания Windows App SDK включены. По умолчанию все изменения включены, но можно использовать RuntimeCompatibilityOptions для блокировки поведения среды выполнения на указанном уровне исправления или отключения определенных изменений:
- Выберите уровень исправления: Можно указать поведение выпуска обслуживания, которое вы хотите использовать. Например, приложение может указать, что он хочет поведение уровня исправлений 1.7.2, которое будет иметь Windows App SDK запускаться на этом уровне исправлений, даже если установлен 1.7.3 или более поздней версии. Эта возможность позволяет контролировать, когда приложение получает новые исправления или изменения поведения, даже если вы не используете автономный режим.
- Временно отключите определенные изменения: Если приложение сталкивается с проблемой с определенным изменением в обновлении обслуживания, вы можете отключить только это изменение, но при этом воспользоваться другими изменениями или функциями в этом обновлении. Все изменения включены по умолчанию для используемого уровня исправлений. Отключение изменения — это временная мера, которая дает время для выпуска исправления в будущем Windows App SDK обновлении или для реализации обновления в приложении.
Ниже приведен пример для указания уровня исправлений и отключения определенного изменения:
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();
}
Необходимо применить RuntimeCompatibilityOptions в начале процесса перед вызовом других Windows App SDK API или сразу после инициализации среды выполнения приложение для Windows.
PatchLevel1 и PatchLevel2 — это просто два поля, чтобы задать соответствующие уровни исправлений. Они не соответствуют какой-либо конкретной версии среды выполнения приложение для Windows и не соответствуют определенному порядку. Поэтому для параметра PatchLevel1 допустимо задать значение 1.8.2 и PatchLevel2 значение 1.7.3, например. В приведенном выше примере при обновлении приложения до версии 1.9 можно просто обновить PatchLevel1 до 1.9.3 и оставить PatchLevel2 как 1.8.2.
Указание RuntimeCompatibilityOptions в файле проекта приложения
Кроме того, файл проекта приложения можно использовать для указания уровня исправлений и отключенных изменений, а не непосредственно с помощью RuntimeCompatibilityOptions. Этот подход имеет преимущество обеспечения того, чтобы варианты применялись рано при правильном времени. Ниже приведен пример указания уровня исправлений и отключенных изменений в файле проекта (например.csproj, ):.vcxproj
<PropertyGroup>
<WindowsAppSDKRuntimePatchLevel1>1.7.3</WindowsAppSDKRuntimePatchLevel1>
<WindowsAppSDKRuntimePatchLevel2>1.8.2</WindowsAppSDKRuntimePatchLevel2>
<WindowsAppSDKDisabledChanges>SampleApiCrashFix, OtherSampleApiCrashFix</WindowsAppSDKDisabledChanges>
</PropertyGroup>
Свойство WindowsAppSDKDisabledChanges — это разделенный запятыми список значений RuntimeCompatibilityChange для отключения.
Поведение без параметра PatchLevel
Если параметр PatchLevel1 или PatchLevel2 не указан или если ни одна из значений не соответствует используемой основной.дополнительным версиям среды выполнения, среда выполнения будет использовать последний уровень исправлений. Другими словами, среда выполнения будет выполняться со всеми включенными изменениями обслуживания (так же, как и Windows App SDK работает, если этот API не используется).
Конструкторы
| Имя | Описание |
|---|---|
| RuntimeCompatibilityOptions() |
Создает новый объект RuntimeCompatibilityOptions по умолчанию. |
Свойства
| Имя | Описание |
|---|---|
| DisabledChanges |
Возвращает или задает необязательный список определенных изменений обслуживания для отключения. Последние заметки о выпуске стабильного канала для Windows App SDK перечисляют имя каждого изменения, которое можно отключить. |
| PatchLevel1 |
Возвращает или задает необязательный уровень исправлений для использования, если версия среды выполнения соответствует основной.дополнительной версии. Если приложение не входит в процесс перехода на новую версию Windows App SDK, можно задать только один уровень исправления. |
| PatchLevel2 |
Возвращает или задает необязательный уровень исправлений для использования, если версия среды выполнения соответствует основной.дополнительной версии. Это свойство позволяет задать второй уровень исправлений, чтобы помочь приложению перейти на новую версию Windows App SDK. Это удобно, чтобы уровни исправлений для старой и новой версии были указаны во время перехода. Приложения не в процессе перехода должны задать только один уровень исправлений, который они хотят использовать. Установка обоих уровней исправлений для одной и той же основной.дополнительных версий, таких как 1.7.3 и 1.7.4, не допускается и при вызове Apply возникает ошибка. |
Методы
| Имя | Описание |
|---|---|
| Apply() |
Применяет параметры совместимости к среде выполнения. |