RuntimeCompatibilityOptions Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Seu aplicativo pode usar essa classe para configurar as opções de compatibilidade desejadas para aplicativo do Windows comportamento de runtime de alterações adicionadas em atualizações de manutenção. Essa classe é usada apenas para definir o comportamento de runtime e não pode ser usada para consultar as opções aplicadas.
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
- Herança
- Atributos
Comentários
Há duas maneiras pelas quais você pode implantar o SDK do Aplicativo Windows: dependente da estrutura ou autocontido. Para obter detalhes e vantagens e problemas, consulte SDK do Aplicativo Windows visão geral da implantação.
A classe RuntimeCompatibilityOptions fornece compatibilidade configurável pelo aplicativo. Ele destina-se a evitar os problemas com a implantação dependente do Framework, permitindo que seu aplicativo use essa opção com confiança de que ela não será interrompida.
Além disso, se você encontrar um problema de compatibilidade em uma versão de manutenção, ainda poderá avançar desabilitando temporariamente as alterações problemáticas. Até mesmo um aplicativo autocontido pode atualizar para um novo pacote com confiança de que a compatibilidade configurável pelo aplicativo garantirá uma atualização bem-sucedida.
RuntimeCompatibilityOptions tem APIs para controlar o comportamento das alterações de manutenção. Também há propriedades que podem ser definidas no arquivo de projeto do aplicativo para usar automaticamente as novas APIs com os valores especificados.
RuntimeCompatibilityOptions configura quais alterações nas versões de serviço SDK do Aplicativo Windows estão habilitadas. Por padrão, todas as alterações estão habilitadas, mas você pode usar RuntimeCompatibilityOptions para bloquear o comportamento do runtime em um nível de patch especificado ou para desabilitar alterações específicas:
- Escolha o nível do patch: Você pode especificar qual comportamento da versão de manutenção deseja usar. Por exemplo, seu aplicativo pode especificar que ele deseja o comportamento de nível de patch 1.7.2, que terá o SDK do Aplicativo Windows executado nesse nível de patch, mesmo se 1.7.3 ou posterior estiver instalado. Essa funcionalidade permite que você controle quando seu aplicativo obtém novas correções ou alterações de comportamento, mesmo quando você não está usando o modo autocontido.
- Desabilitar temporariamente alterações específicas: Se o aplicativo encontrar um problema com uma alteração específica em uma atualização de manutenção, você poderá desabilitar apenas essa alteração enquanto ainda se beneficia das outras alterações ou recursos nessa atualização. Todas as alterações são habilitadas por padrão para o nível de patch em uso. Desabilitar uma alteração é uma medida temporária, que dá tempo para que uma correção seja lançada em um futuro SDK do Aplicativo Windows atualização ou para que você implemente uma atualização em seu aplicativo.
Aqui está um exemplo para especificar um nível de patch e desabilitar uma alteração específica:
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();
}
Você deve aplicar RuntimeCompatibilityOptions no início do processo, antes que outras APIs de SDK do Aplicativo Windows sejam chamadas; ou logo após a inicialização do runtime do aplicativo do Windows.
PatchLevel1 e PatchLevel2 são simplesmente dois campos para definir níveis de patch relevantes. Elas não precisam corresponder a nenhuma versão específica do aplicativo do Windows Runtime nem estar em uma ordem específica. Portanto, é válido definir PatchLevel1 como 1.8.2 e PatchLevel2 como 1.7.3, por exemplo. E, no exemplo acima, ao atualizar o aplicativo para 1.9, você pode optar por simplesmente atualizar PatchLevel1 para 1.9.3 e deixar PatchLevel2 como 1.8.2.
Especificando RuntimeCompatibilityOptions no arquivo de projeto do aplicativo
Como alternativa, você pode usar o arquivo de projeto do aplicativo para especificar o nível do patch e as alterações desabilitadas, em vez de usar diretamente RuntimeCompatibilityOptions. Essa abordagem tem a vantagem de garantir que as opções sejam aplicadas antecipadamente no momento adequado. Aqui está um exemplo de como especificar o nível do patch e as alterações desabilitadas no arquivo de projeto (como .csproj ou .vcxproj):
<PropertyGroup>
<WindowsAppSDKRuntimePatchLevel1>1.7.3</WindowsAppSDKRuntimePatchLevel1>
<WindowsAppSDKRuntimePatchLevel2>1.8.2</WindowsAppSDKRuntimePatchLevel2>
<WindowsAppSDKDisabledChanges>SampleApiCrashFix, OtherSampleApiCrashFix</WindowsAppSDKDisabledChanges>
</PropertyGroup>
A propriedade WindowsAppSDKDisabledChanges é uma lista separada por vírgulas de valores RuntimeCompatibilityChange para desabilitar.
Comportamento sem PatchLevel especificado
Se nenhum PatchLevel1 ou PatchLevel2 for especificado ou se nenhum valor corresponder à versão principal.secundária do runtime que está sendo usado, o runtime usará o nível de patch mais recente. Em outras palavras, o runtime será executado com todas as alterações de manutenção habilitadas (assim como o SDK do Aplicativo Windows funciona se você não usar essa API).
Construtores
| Nome | Description |
|---|---|
| RuntimeCompatibilityOptions() |
Cria um novo objeto RuntimeCompatibilityOptions padrão. |
Propriedades
| Nome | Description |
|---|---|
| DisabledChanges |
Obtém ou define uma lista opcional de alterações de manutenção específicas a serem desabilitados. As últimas notas de versão do canal estável para o SDK do Aplicativo Windows lista o nome de cada alteração que você pode desabilitar. |
| PatchLevel1 |
Obtém ou define um nível de patch opcional a ser usado se a versão do runtime corresponder à versão principal.minor. Se o aplicativo não estiver em processo de transição para uma nova versão do SDK do Aplicativo Windows, você poderá definir apenas este nível de patch. |
| PatchLevel2 |
Obtém ou define um nível de patch opcional a ser usado se a versão do runtime corresponder à versão principal.minor. Essa propriedade permite definir um segundo nível de patch para ajudar seu aplicativo a fazer a transição para uma nova versão do SDK do Aplicativo Windows. Essa é uma conveniência para permitir que os níveis de patch para a versão antiga e nova sejam especificados durante a transição. Os aplicativos que não estão em processo de transição devem definir apenas o nível de patch que desejam usar. A definição dos dois níveis de patch para a mesma versão principal.secundária, como 1.7.3 e 1.7.4, não é permitida e gerará um erro ao chamar Apply. |
Métodos
| Nome | Description |
|---|---|
| Apply() |
Aplica as opções de compatibilidade ao runtime. |