Partage via


Conseils supplémentaires sur la migration

Vous trouverez dans cette rubrique des conseils de migration supplémentaires non classés dans une zone de fonctionnalité dans les Guides des composants.

Compilation conditionnelle

Les informations contenues dans cette section peuvent être utiles si vous envisagez d’utiliser le même fichier de code source dans un projet UWP et un projet du Kit de développement logiciel (SDK) d’application Windows.

Dans le code source C# d’un projet du Kit de développement logiciel (SDK) d’application Windows, vous pouvez utiliser des directives de préprocesseur avec le symbole WINDOWS_UWP pour effectuer la compilation conditionnelle.

#if !WINDOWS_UWP
    // Win32/Desktop code, including Windows App SDK code
#else
    // UWP code
#endif

Dans le code source C++/WinRT dans un projet du Kit de développement logiciel (SDK) d’application Windows, vous pouvez utiliser des directives de préprocesseur avec WINAPI_FAMILY_PC_APP pour effectuer la même opération. Vous pouvez également utiliser WINAPI_FAMILY_DESKTOP_APP à la place. Un commentaire dans le winapifamily.h fichier d’en-tête indique que WINAPI_FAMILY_APP doit être considéré comme déconseillé.

#if (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)
    // Win32/Desktop code, including Windows App SDK code
#else
    // UWP code
#endif

Vous pouvez également utiliser la compilation conditionnelle dans le balisage XAML.

<Application
    ...
    xmlns:nouwp="condition:!WINDOWS_UWP"
    mc:Ignorable="nouwp">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!--Not Needed for UWP-->
                <nouwp:XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
                 <!--Other merged dictionaries here--> 
            </ResourceDictionary.MergedDictionaries>
             <!--Other app resources here--> 
        </ResourceDictionary>
    </Application.Resources>
</Application>

Consultez également la compilation conditionnelle.

Débogage

Pendant le processus de migration, vous pouvez trouver votre application dans un état où votre balisage XAML a des références aux clés de ressources XAML, mais vous n’avez pas encore défini ces clés. Une telle condition entraîne un blocage au moment de l’exécution qui peut ne pas être simple à déboguer. Toutefois, dans une build de débogage, les messages concernant les clés de ressource manquantes apparaissent dans Visual Studio via la sortie de débogage dans le volet Sortie . Exécutez donc votre application sous le débogueur et observez ces messages.

Désinscrire un gestionnaire d’événements (C++/WinRT)

Dans un projet C++/WinRT, vous pouvez révoquer (annuler l’inscription) manuellement un gestionnaire d’événements tel que SizeChanged (pour plus d’informations et des exemples de code, voir Révoquer un délégué inscrit). Mais une alternative à la révocation manuelle ( et celle que vous pourriez envisager si vous rencontrez des problèmes avec la révocation manuelle) consiste à utiliser un révoqueur d’événement automatique C++/WinRT. Là encore, des détails supplémentaires et des exemples de code dans Révoquer un délégué inscrit.

Voir aussi