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

Dans .NET 5, un changement a été apporté pour passer automatiquement OutputType de Exe à WinExe pour les applications WPF et Windows Forms. Dans .NET 6, nous rétablissons ce changement et OutputType ne sera plus modifié 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 ou UseWPF était défini sur true, le Kit de développement logiciel (SDK) .NET passait OutputType à WinExe.

Nouveau comportement

OutputType n’est plus modifié en fonction de ce qui se trouve dans le fichier projet.

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

Modifier la catégorie

Ce changement peut affecter la compatibilité source.

Raison du changement

Le changement de .NET 5 visait à simplifier les applications .NET MAUI, de sorte que OutputType n’aurait pas besoin d’être conditionné sur la version cible de .Net Framework. Toutefois :

  • Déduire automatiquement les attentes cassées des utilisateurs et développeurs frustrés OutputType. 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 invoquez le fait que OutputType est passé de Exe à WinExe, vous devez le définir explicitement sur WinExe dans le fichier projet.

Si vous avez été impacté par le changement cassant précédent et que vous avez dû définir DisableWinExeOutputInference pour désactiver la logique qui a été ajoutée dans .NET 5, vous pouvez supprimer cette propriété maintenant.

API affectées

N/A

Voir aussi