Compartir a través de


OutputType establecido en WinExe para aplicaciones de WPF y WinForms

OutputType se establece automáticamente en WinExe para aplicaciones de Windows Presentation Foundation (WPF) y Windows Forms. Cuando OutputType se establece en WinExe, una ventana de consola no se abre cuando se ejecuta la aplicación.

Descripción del cambio

En versiones anteriores del SDK de .NET, se usa el valor especificado para OutputType en el archivo de proyecto. Por ejemplo:

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

A partir de la versión 5.0.100 del SDK de .NET, cuando se establece OutputType en Exe, se cambia automáticamente a WinExe en las aplicaciones de WPF y Windows Forms que tienen como destino cualquier versión de marco, incluido .NET Framework.

<PropertyGroup>
  <OutputType>WinExe</OutputType>
</PropertyGroup>

Si OutputType no se especifica en el archivo del proyecto, el valor predeterminado es Library y ese valor no cambia.

Motivo del cambio

Se supone que la mayoría de los usuarios no quieren que se abra una ventana de consola cuando se ejecuta una aplicación de WPF o Windows Forms. Además, ahora que estos tipos de aplicación usan el SDK de .NET en lugar del SDK de escritorio de Windows, se establecerá el valor predeterminado correcto. Además, cuando se incorpore la compatibilidad con iOS y Android, será más fácil apuntar a múltiples plataformas si todas utilizan el mismo tipo de salida.

Versión introducida

SDK de .NET 5.0.100

No se requiere ninguna acción en su parte. Pero si quiere revertir al comportamiento anterior, establezca la propiedad DisableWinExeOutputInference en true en el archivo del proyecto.

<DisableWinExeOutputInference>true</DisableWinExeOutputInference>

Las APIs afectadas

No se puede detectar a través del análisis de API.