visual studio 2015 - tutorial - Error ASP.NET Core 5.0 CS0012: el tipo ''Objeto'' se define en el ensamblado ''mscorlib
visual studio code highlight closing tag (4)
En Visual Studio 2015 tengo un kproj, en este proyecto quería agregar una referencia a un ensamblaje que no está disponible en ningún paquete público nuget, así que creé mi propio paquete nuget y de esta manera pude agregar la referencia a esta asamblea.
El problema es que ahora recibo la siguiente excepción:
Error ASP.NET Core 5.0 CS0012: El tipo ''Objeto'' se define en un ensamblaje al que no se hace referencia. Debe agregar una referencia al ensamblado ''mscorlib, Versión = 4.0.0.0, Cultura = neutral, PublicKeyToken = b77a5c561934e089''.
¿Alguna idea sobre cómo superar esto?
Resuelto. Se eliminó el marco "aspnetcore50" del proyecto. Json
Como escribió, la eliminación de aspnetcore50
de los marcos específicos elimina el problema. Sin embargo, quería saber por qué y qué viene con eso y encontré la respuesta.
La diferencia entre aspnet50
y aspnetcore50
es que usan .NET Framework 4.6 y .NET Core 5 respectivamente. Un artículo ¿Qué es .NET Core 5 y ASP.NET 5 dentro de .NET 2015 Preview explica bien las diferencias, que en resumen son:
Cuando ejecuta su aplicación ASP.NET 5 sobre Core-CLR y, por lo tanto, .NET Core 5 , obtendrá una pila de extremo a extremo optimizada para cargas de trabajo de servidor / nube, lo que significa un alto rendimiento, una huella muy pequeña en memoria y una de las cosas más importantes, ejecución lado a lado de .NET Core 5 framework versión (entorno de ejecución KRE o K) relacionado con su aplicación, sin importar qué otras versiones de .NET podrían instalarse en el mismo servidor o máquina Además, y como se mencionó, puede ejecutar esa aplicación web en un servicio web que se ejecute en Mac o Linux.
Por otro lado, cuando ejecuta su aplicación ASP.NET 5 sobre CLR regular y, por lo tanto, .NET Framework 4.6 obtendrá el más alto nivel de compatibilidad con las bibliotecas .NET existentes y menos restricciones de las que obtiene al ejecutar en parte superior de .NET Core 5.
También significa que para aprovechar estas excelentes características, necesita utilizar bibliotecas compatibles con .NET Core 5. Si tiene una DLL ya compilada, que apunta a .NET Framework, lo más probable es que no sea compatible y tendrá que usar .NET Framework 4.6.
El motivo es que .NET Core 5 no contiene Basic Class Library, que contiene componentes comunes tales como Collections, IO, LINQ, etc. Los componentes de BCL ahora están disponibles en paquetes NuGet separados, para que pueda incluir en su proyecta solo las piezas que necesitas
Acerca de cómo diferentes bibliotecas de destino de .NET Core 5 se pueden leer en Creación de paquetes NuGet de múltiples objetivos con vNext
De hecho, el problema es una lib vieja que requiere una versión asp.net 4.0 o 4.5 (menos que Core).
Microsoft proporciona una solución instalando el paquete NuGet.
PM> Install-package Microsoft.NETCore.Portable.Compatibility
De esta forma, podrás ejecutar tu código con libs antiguas.
PM> Install-package Microsoft.NETCore.Portable.Compatibility