RuntimeCompatibilityOptions 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
앱은 이 클래스를 사용하여 서비스 업데이트에 추가된 변경 내용의 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 앱 SDK 배포하는 방법에는 프레임워크 종속 또는 자체 포함이라는 두 가지 방법이 있습니다. 자세한 내용 및 이점 및 문제는 Windows 앱 SDK 배포 개요를 참조하세요.
RuntimeCompatibilityOptions 클래스는 앱 구성 가능한 호환성을 제공합니다. 프레임워크 종속 배포의 문제를 방지하여 앱이 손상되지 않을 것이라는 확신을 가지고 해당 옵션을 사용할 수 있도록 하기 위한 것입니다.
또한 서비스 릴리스에서 호환성 문제가 발견되면 문제가 있는 변경 내용을 일시적으로 사용하지 않도록 설정하여 계속 진행할 수 있습니다. 자체 포함 앱도 앱 구성 호환성이 성공적인 업데이트를 보장한다는 확신을 가지고 새 패키지로 업데이트할 수 있습니다.
RuntimeCompatibilityOptions 에는 서비스 변경의 동작을 제어하는 API가 있습니다. 앱의 프로젝트 파일에서 지정된 값으로 새 API를 자동으로 사용하도록 설정할 수 있는 속성도 있습니다.
RuntimeCompatibilityOptions는 Windows 앱 SDK 서비스 릴리스의 변경 내용을 사용하도록 설정합니다. 기본적으로 모든 변경 내용을 사용할 수 있지만 RuntimeCompatibilityOptions 를 사용하여 런타임 동작을 지정된 패치 수준으로 잠그거나 특정 변경 내용을 사용하지 않도록 설정할 수 있습니다.
- 패치 수준을 선택합니다. 사용할 서비스 릴리스의 동작을 지정할 수 있습니다. 예를 들어 앱은 1.7.3 이상이 설치된 경우에도 해당 패치 수준에서 Windows 앱 SDK 실행되는 1.7.2 패치 수준 동작을 원한다고 지정할 수 있습니다. 이 기능을 사용하면 자체 포함 모드를 사용하지 않는 경우에도 앱이 새로운 수정 또는 동작 변경을 받는 시기를 제어할 수 있습니다.
- 특정 변경 내용을 일시적으로 사용하지 않도록 설정합니다 . 앱에서 서비스 업데이트의 특정 변경 내용에 문제가 발생하는 경우 해당 업데이트의 다른 변경 내용 또는 기능을 활용하면서 해당 변경 내용만 사용하지 않도록 설정할 수 있습니다. 모든 변경 내용은 기본적으로 사용 중인 패치 수준에 대해 사용하도록 설정됩니다. 변경을 사용하지 않도록 설정하는 것은 임시 조치로, 향후 Windows 앱 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();
}
다른 Windows 앱 SDK API가 호출되기 전에 또는 Windows 앱 런타임을 초기화한 직후 프로세스 초기에 RuntimeCompatibilityOptions를 적용해야 합니다.
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를 지정하지 않거나 두 값이 사용 중인 런타임의 major.minor 버전과 일치하지 않는 경우 런타임은 최신 패치 수준을 사용합니다. 즉, 이 API를 사용하지 않는 경우 Windows 앱 SDK 작동하는 방식과 마찬가지로 모든 서비스 변경이 사용하도록 설정된 상태로 런타임이 실행됩니다.
생성자
| Name | Description |
|---|---|
| RuntimeCompatibilityOptions() |
새 기본 RuntimeCompatibilityOptions 개체를 만듭니다. |
속성
| Name | Description |
|---|---|
| DisabledChanges |
사용하지 않도록 설정할 특정 서비스 변경 내용의 선택적 목록을 가져오거나 설정합니다. Windows 앱 SDK 대한 안정적인 최신 채널 릴리스 정보에는 사용하지 않도록 설정할 수 있는 각 변경 내용의 이름이 나열되어 있습니다. |
| PatchLevel1 |
런타임 버전이 major.minor 버전과 일치하는 경우 사용할 선택적 패치 수준을 가져오거나 설정합니다. 앱이 새 버전의 Windows 앱 SDK 전환하지 않는 경우 이 하나의 패치 수준만 설정할 수 있습니다. |
| PatchLevel2 |
런타임 버전이 major.minor 버전과 일치하는 경우 사용할 선택적 패치 수준을 가져오거나 설정합니다. 이 속성을 사용하면 앱이 새 버전의 Windows 앱 SDK 전환하는 데 도움이 되는 두 번째 패치 수준을 설정할 수 있습니다. 이는 전환 중에 이전 버전과 새 버전 모두에 대한 패치 수준을 지정할 수 있는 편리한 기능입니다. 전환 중이 아닌 앱은 사용하려는 하나의 패치 수준만 설정해야 합니다. 동일한 major.minor 버전(예: 1.7.3 및 1.7.4)에 대해 두 패치 수준을 모두 설정하는 것은 허용되지 않으며 Apply를 호출할 때 오류가 발생합니다. |
메서드
| Name | Description |
|---|---|
| Apply() |
런타임에 호환성 옵션을 적용합니다. |