OutputType n’a pas changé d’Exe à WinExe pour les projets Windows Forms et WPF

Dans .NET 5, une modification a été apportée pour changer automatiquement OutputType de Exe à WinExe dans les applications WPF et Windows Forms. Dans .NET 6, nous rétablissons cette modification et OutputType ne seront plus modifiés par le Kit de développement logiciel (SDK).

Version introduite

.NET 6 RC 1

Comportement précédent

Si un projet ciblait .NET 5 ou version ultérieure, OutputType était défini sur Exe, et UseWindowsForms était défini sur UseWPF, alors le SDK .NET changerait true à OutputType.

Nouveau comportement

OutputType n’est plus modifié par rapport à ce qui est dans le fichier de projet.

<PropertyGroup>
  <OutputType>Exe</OutputType>
</PropertyGroup>

Modifier la catégorie

Cette modification peut affecter la compatibilité source .

Raison de la modification

La modification de .NET 5 a été conçue pour simplifier les applications .NET MAUI, de sorte qu’elle OutputType n’aurait pas besoin d’être conditionnée sur le framework cible. Toutefois :

  • L'inférence automatique de OutputType a brisé les attentes des utilisateurs et frustré les développeurs. Pour plus d’informations, consultez dotnet/sdk#16563 et ses problèmes liés.
  • Les applications .NET MAUI utilisent WinUI par défaut, et non Windows Forms ou WPF, de sorte que l’inférence automatique ne s’applique même pas aux applications .NET MAUI.

Si vous vous êtes appuyé sur le fait que OutputType a été modifié de Exe à WinExe, vous devriez le définir explicitement sur WinExe dans le fichier projet.

Si vous avez été affecté par le changement de rupture précédent et que vous deviez définir DisableWinExeOutputInference pour désactiver la logique introduite dans .NET 5, vous pouvez supprimer cette propriété maintenant.

API affectées

N/A

Voir aussi