Saltar al contenido

¿Cuándo y por qué necesito el elemento supportedRuntime y el atributo sku?

Solución:

Es necesario declarar con qué versiones del marco de trabajo es realmente compatible su aplicación. Supongamos que tenemos una aplicación que apunta a .NET Framework 4.7.2 e intentamos ejecutarla en la máquina que solo tiene .NET Framework 4.5 instalado. Si agregamos esta app.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/></startup></configuration>

Windows mostrará un bonito mensaje de error que solicita instalar la versión de marco necesaria:

mensaje de error

Si omitimos el archivo app.config, Windows intentará ejecutarlo y luego la aplicación se bloqueará la primera vez que acceda a una función específica de .NET Framework 4.7.2 y no esté presente en la versión del marco instalada.

Tenga en cuenta que la documentación es engañosa al decir que “Este elemento debe ser utilizado por todas las aplicaciones creadas con la versión 1.1 o posterior de .NET Framework.“. Podría interpretarse como”Este elemento es necesario para que la aplicación se ejecute en .NET 1.1+“, mientras que en realidad solo significa que .NET 1.1 cambió una sintaxis de la que se usaba anteriormente en .NET 1.0 requiredRuntime sintaxis. Más a menudo que no supportedRuntime NO es necesario para que la aplicación se ejecute, es solo por belleza.

Un escenario común cuando supportedRuntime es De Verdad necesario para que la aplicación se ejecute es cuando tenemos una aplicación dirigida a .NET 2.x-3.xy intentamos ejecutarla en una máquina que solo tiene 4.x (por ejemplo, Windows 10 tiene 4.6+ pero no tiene .NET 2. x-3.x instalado de forma predeterminada). En este caso, sin supportedRuntime en app.config, la aplicación no se ejecutará en absoluto, aunque 4.x es principalmente compatible con versiones anteriores. Añadiendo <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> solucionará el problema.


Entonces, para resumir, no duplica la información en los metadatos del ensamblaje, sino que brinda a Windows información adicional sobre cómo conectar la aplicación con la versión del marco con la que es compatible, y qué versión pedirle al usuario que instale si no está presente en la máquina de destino. .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *