tiene - Problema al agregar una referencia al proyecto de biblioteca de clases en ASP.NET 5(Core)
no se puede agregar una referencia a system core (6)
Hola, en primer lugar sé que se han formulado preguntas similares, pero ahora están desactualizadas, estoy usando Visual Studio 2015 rtm y ASP.NET 5 beta 6.
Estoy intentando agregar una referencia a un proyecto de biblioteca de clases normal (es decir, no vnext) a mi aplicación web vnext. Si sigo estos pasos:
Crear un nuevo proyecto de aplicación web.
Elimine el marco "dnxcore50" de project.json
Agregar un nuevo proyecto para una biblioteca de clases normal
Mueva manualmente el proyecto de la biblioteca de clases a la carpeta / src (de lo contrario, aparece el error "La dependencia MyClassLibrary1> = 1.0.0- * no se pudo resolver".)
Agregar una referencia a esta biblioteca de clases
Ahora funciona bien, pero si intento agregar "usar MyClassLibrary1", dice que MyClassLibrary1 no existe en el contexto actual.
Si luego cambio la biblioteca de clases para apuntar al perfil de .NET 4 Client (por defecto era 4.6) funciona correctamente, sin embargo .NET 4 completo o 4.5 no funciona Necesito que sea 4.5 o superior, ya que necesito hacer referencia a varios paquetes que requieren esto. Idealmente, todo solo apuntaría a 4.6.
Este es mi archivo project.json:
{
"webroot": "wwwroot",
"userSecretsId": "aspnet5-WebApplication2-6767111e-0eba-42a4-9d68-4b6c20767518",
"version": "1.0.0-*",
"dependencies": {
"EntityFramework.SqlServer": "7.0.0-beta6",
"EntityFramework.Commands": "7.0.0-beta6",
"Microsoft.AspNet.Mvc": "6.0.0-beta6",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta6",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta6",
"Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta6",
"Microsoft.AspNet.Authentication.Google": "1.0.0-beta6",
"Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta6",
"Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta6",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta6",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta6",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta6",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta6",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-beta6",
"Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta6",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta6",
"Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta6",
"Microsoft.Framework.Logging": "1.0.0-beta6",
"Microsoft.Framework.Logging.Console": "1.0.0-beta6",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta6"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --config hosting.ini",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": {
"dependencies": {
"MyClassLibrary1": "1.0.0-*"
}
}
},
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
}
}
Y mi archivo global.json:
{
"projects": [
"src",
"test",
"wrap"
],
"sdk": {
"version": "1.0.0-beta6"
}
}
Así es como lo hice en ASPT.NET 5 RC 1 Update 1:
- Añadir la referencia del proyecto.
Abra
project.json
, dentro de"frameworks":
node, elimine"dnxcore50": { }
line (JSON no permite comentarios). Cuando guarde el archivo json, la referenciaDNX Core 5
debe eliminarse inmediatamente.Construye el proyecto. Se debe construir con éxito.
Ponga
"dnxcore50": { }
atrás. No trae DNX 5 Core de vuelta.
Así es como lo hice usando beta6 ( ACTUALIZACIÓN: todavía es válido para RC1 ACTUALIZACIÓN 1 ).
- Elimine frameworks => dnxcore de su project.json (de todas formas no puede apuntar usando bibliotecas de clase .net completas)
- En su proyecto de destino, haga clic derecho en Referencias => Agregar referencia
- Navegue y seleccione la dll de referencia que desea agregar.
Esto agregará una entrada de referencia a su archivo project.json . Detrás de las escenas, la dll se copia en el directorio / lib de su solución y se crea un " proyecto contenedor " con solo un archivo project.json en la carpeta / wrap. El proyecto contenedor está documentado aquí (aunque no lo suficientemente bien): https://github.com/aspnet/Home/wiki/Project.json-file#bin-syntax-wrapping-a-dll
¡Eso es! Acabo de probar este escenario. Espero que esto ayude.
Estas respuestas realmente me ayudaron a resolver esto. En mi caso, la limpieza de las cosas en la carpeta "wrap" de la solución resolvió los errores de compilación. Había cambiado el nombre de algunas bibliotecas de clase y las antiguas todavía estaban allí. Eliminar los proyectos antiguos y actualizar los archivos project.json en los proyectos existentes hizo el trabajo. Asegúrese de que las dependencias en los archivos project.json respetan los proyectos correctos.
Aquí hay un ejemplo:
"dependencies": {
"DomainRepository": "1.0.0-*",
"Domain": "1.0.0-*",
"DomainContract": "1.0.0-*"
}
Este es un error actualmente abierto. Aquí está el enlace para que pueda ver cuándo se cierra: https://github.com/aspnet/Tooling/issues/245
Para agregar un proyecto .NET normal en una versión mayor que 4.5.1, simplemente elimine dnxcore y cambie el nombre de dnx451 a dnx461
Si alguien más está luchando con este error en particular, la clave es agregar la referencia al "buscar" en el archivo real al agregar la referencia, y no usar la pestaña "proyecto".
Esto no parece almacenar la ruta, pero agrega la referencia al project.json según lo normal. Obviamente un error (beta7) en el momento de escribir esto.