Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Algunas API que no son compatibles en .NET/.NET Core, pero que no hacían nada al ser accedidas, ahora generan una PlatformNotSupportedException excepción en tiempo de ejecución. Anteriormente, el uso de estas API daría lugar a una excepción en tiempo de ejecución más adelante; Ahora se produce la excepción cuando se crea una instancia del tipo o se accede primero a él.
Comportamiento anterior
En versiones anteriores, llamar a AssemblyName.KeyPair o StrongNameKeyPair(Byte[]) daba un error no-op. La llamada StrongNameKeyPair(FileStream) leyó el flujo, pero por lo demás no hizo nada.
Nuevo comportamiento
A partir de .NET 6, cada una de las tres APIs afectadas lanza una excepción PlatformNotSupportedException en tiempo de ejecución.
Versión introducida
.NET 6
Tipo de cambio disruptivo
Este cambio puede afectar a la compatibilidad binaria.
Motivo del cambio
Anteriormente, una aplicación que llamaba a la API compilaba y se ejecutaba, pero tan pronto como se usaba la instancia en cualquier ruta de acceso de código, arrojaba una excepción en tiempo de ejecución. Para que sea más explícito que este escenario no está soportado, la lógica de lanzamiento de excepciones se movió al constructor de instancia. En caso de que no se creen instancias, la excepción también se produce en puntos de entrada públicos que devuelven este tipo, es decir, AssemblyName.KeyPair.
Acción recomendada
La firma de nombres seguros no se admite en .NET/.NET Core y no hay ninguna solución alternativa.
Nota:
.NET Core/5+ nunca comprueba las firmas en su entorno de ejecución. Sin embargo, si tiene como destino bibliotecas multiplataforma (por ejemplo, un paquete de autenticación básico destinado a .NET Standard 2.0, por lo que también se ejecuta en .NET Framework), la nomenclatura segura es una buena idea para la compatibilidad entre entornos de ejecución. .NET Framework sigue aplicando nombres seguros si la aplicación que realiza la llamada tiene un nombre seguro. Puede crear ensamblados de nombre seguro en todas las versiones de .NET mediante la herramienta Sn.exe . Para obtener más información, consulte Firma de nombres seguros.