mvc - web api rest c#
El tipo predefinido ''System.Object'' no está definido o importado.net 4.6 (5)
Estoy usando MVC 5 y .net 4.6 para crear una API web que mi aplicación móvil también puede conectar.
Cuando compilo el proyecto, obtengo cientos de errores que me dicen que debo agregar referencias que ya están allí y que literalmente cada tipo en mi proyecto "no existe". Algunos ejemplos de estos errores: (sin incluir el del título)
Lo que he intentado:
- Se agregó una referencia a System.Runtime a través de nuGet. (Una recomendación de esta pregunta .)
- Se eliminó aspnetcore50 de los marcos en el archivo project.json. (Otra recomendación, esta pregunta .)
- Reiniciando VS2015, mi máquina.
- Pasando por el administrador de paquetes de nuGet y actualizando todos los paquetes de mi proyecto al más reciente.
- Realmente me aseguro de que pueda ver las referencias en el nodo de referencias del explorador de soluciones.
ACTUALIZACIÓN: -Mi project.json
archivo se ve así. (Después de la modificación basada en la respuesta de Karls. La lista de errores ahora se ha reducido a diez, sin embargo, siguen siendo los mismos errores que antes).
{
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
},
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
"Microsoft.AspNet.Mvc": "6.0.0-beta5",
"System.Runtime": "4.0.20-beta-23019"
},
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
"System.Data": "4.0.0.0",
"System.Data.DataSetExtensions": "4.0.0.0",
"System.Data.Linq": "4.0.0.0"
}
}
},
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"version": "1.0.0-*",
"webroot": "wwwroot"
}
En mi caso, tenía un proyecto que todavía estaba configurado para compilar contra una versión beta de dnx. Cambiarlo para construir contra la versión que estaba usando en los otros proyectos lo solucionó.
Estoy adivinando un poco aquí, pero parece sospechoso que estés usando las cosas de System.Data.*
Para dnx451
pero no tiene nada que compensar con dnxcore50
. ¿Está apuntando también a la edición principal o son solo restos de la creación del proyecto? Si quieres apuntar a la edición principal y seguir utilizando el antiguo System.Data.*
, Necesitarás envolver cualquier cosa de esos ensamblajes como este.
#if DNX451
// Do some DNX451 specific stuff here
#endif
Y al revés también.
#if DNXCORE50
// Do some DNXCORE50 specific stuff here
#endif
Pero si no está pensando en admitir esto todavía, simplemente eliminaría dnxcore50
de la lista del marco y sus errores probablemente desaparecerán.
Para mí, el problema ocurrió cuando agregué un nuevo proyecto a mi solución. Reconstruí la solución y los errores desaparecieron.
Retire bin
y obj
y reconstruir.
dotnet restore
comando dotnet restore
en la consola del administrador de paquetes y el problema se soluciona