RuntimeCompatibilityOptions Classe

Definizione

L'app può usare questa classe per configurare le opzioni di compatibilità desiderate per app di Windows comportamento di runtime delle modifiche aggiunte negli aggiornamenti di manutenzione. Questa classe viene usata solo per impostare il comportamento di runtime e non può essere usata per eseguire query sulle opzioni applicate.

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
Ereditarietà
Object Platform::Object IInspectable RuntimeCompatibilityOptions
Attributi

Commenti

Esistono due modi in cui è possibile distribuire l'SDK per app di Windows: dipendente dal framework o indipendente. Per informazioni dettagliate e vantaggi e problemi, vedere SDK per app di Windows panoramica della distribuzione.

La classe RuntimeCompatibilityOptions offre la compatibilità configurabile dall'app. È progettato per evitare i problemi con la distribuzione dipendente dal framework, consentendo all'app di usare tale opzione con sicurezza che non verrà interrotta.

Inoltre, se si riscontra un problema di compatibilità in una versione di manutenzione, sarà comunque possibile procedere disabilitando temporaneamente le modifiche problematiche. Anche un'app autonoma può essere aggiornata a un nuovo pacchetto con la certezza che la compatibilità configurabile dall'app garantirà un aggiornamento corretto.

RuntimeCompatibilityOptions include API per controllare il comportamento delle modifiche di manutenzione. Esistono anche proprietà che possono essere impostate nel file di progetto dell'app per usare automaticamente le nuove API con i valori specificati.

RuntimeCompatibilityOptions configura le modifiche apportate alle versioni di manutenzione SDK per app di Windows abilitate. Per impostazione predefinita, tutte le modifiche sono abilitate, ma è possibile usare RuntimeCompatibilityOptions per bloccare il comportamento di runtime a un livello di patch specificato o disabilitare modifiche specifiche:

  1. Scegliere il livello di patch: È possibile specificare il comportamento della versione di manutenzione da usare. Ad esempio, l'app può specificare che vuole il comportamento a livello di patch 1.7.2, che avrà il SDK per app di Windows eseguito a tale livello di patch, anche se è installato 1.7.3 o versione successiva. Questa funzionalità consente di controllare quando l'app ottiene nuove correzioni o modifiche del comportamento, anche quando non si usa la modalità autonoma.
  2. Disabilitare temporaneamente modifiche specifiche: Se l'app rileva un problema con una modifica specifica di un aggiornamento di manutenzione, puoi disabilitare solo tale modifica sfruttando al tempo stesso le altre modifiche o le altre funzionalità di tale aggiornamento. Tutte le modifiche sono abilitate per impostazione predefinita per il livello di patch in uso. La disabilitazione di una modifica è una misura temporanea, che consente di rilasciare una correzione in un aggiornamento futuro SDK per app di Windows oppure di implementare un aggiornamento nell'app.

Ecco un esempio per specificare un livello di patch e disabilitare una modifica specifica:

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();
}

È necessario applicare RuntimeCompatibilityOptions all'inizio del processo, prima di chiamare qualsiasi altra API SDK per app di Windows oppure subito dopo l'inizializzazione del runtime di app di Windows.

PatchLevel1 e PatchLevel2 sono semplicemente due campi per impostare i livelli di patch pertinenti. Queste non devono corrispondere a una versione specifica del runtime di app di Windows, né essere in un ordine specifico. È quindi valido impostare PatchLevel1 su 1.8.2 e PatchLevel2 su 1.7.3, ad esempio. Nell'esempio precedente, quando si aggiorna l'app alla versione 1.9, è possibile scegliere di aggiornare semplicemente PatchLevel1 a 1.9.3 e lasciare PatchLevel2 come 1.8.2.

Specifica di RuntimeCompatibilityOptions nel file di progetto dell'app

In alternativa, puoi usare il file di progetto dell'app per specificare il livello di patch e le modifiche disabilitate, invece di usare direttamente RuntimeCompatibilityOptions. Questo approccio ha il vantaggio di garantire che le opzioni vengano applicate all'inizio dei tempi appropriati. Di seguito è riportato un esempio di come specificare il livello di patch e le modifiche disabilitate nel file di progetto , ad esempio .csproj o .vcxproj:

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

La proprietà WindowsAppSDKDisabledChanges è un elenco delimitato da virgole dei valori RuntimeCompatibilityChange da disabilitare .

Comportamento senza patchlevel specificato

Se non viene specificato alcun valore PatchLevel1 o PatchLevel2 o se nessuno dei due valori corrisponde alla versione principale.secondaria del runtime in uso, il runtime userà il livello di patch più recente. In altre parole, il runtime verrà eseguito con tutte le modifiche di manutenzione abilitate (proprio come funziona il SDK per app di Windows se non si usa questa API).

Costruttori

Nome Descrizione
RuntimeCompatibilityOptions()

Crea un nuovo oggetto RuntimeCompatibilityOptions predefinito.

Proprietà

Nome Descrizione
DisabledChanges

Ottiene o imposta un elenco facoltativo di modifiche di manutenzione specifiche da disabilitare.

Le note sulla versione più recente del canale stabile per il SDK per app di Windows elencano il nome di ogni modifica che è possibile disabilitare.

PatchLevel1

Ottiene o imposta un livello di patch facoltativo da utilizzare se la versione di runtime corrisponde alla versione major.minor.

Se l'app non è in fase di transizione a una nuova versione del SDK per app di Windows, è possibile impostare solo questo livello di patch.

PatchLevel2

Ottiene o imposta un livello di patch facoltativo da utilizzare se la versione di runtime corrisponde alla versione major.minor.

Questa proprietà consente di impostare un secondo livello di patch per facilitare la transizione dell'app a una nuova versione del SDK per app di Windows. Si tratta di una comodità che consente di specificare i livelli di patch sia per la versione precedente che per la nuova versione durante la transizione. Le app non nel processo di transizione devono impostare solo il livello di patch da usare.

L'impostazione di entrambi i livelli di patch per la stessa versione principale.secondaria, ad esempio 1.7.3 e 1.7.4, non è consentita e genererà un errore quando si chiama Apply.

Metodi

Nome Descrizione
Apply()

Applica le opzioni di compatibilità al runtime.

Si applica a