Estoy usando VS 2015.
Su proyecto no hace referencia al marco ".NETFramework, Version = 4.5". Agregue una referencia a ".NETFramework, Version = 4.5" en la sección "frameworks" de su project.json y luego vuelva a ejecutar NuGet restore.
Recibo este error en mis capas de acceso a datos y lógica empresarial, poco después de agregarlo a mi capa MVC. Las cosas iban bien hasta entonces, pero no sé qué provocó este error. Aquí está mi project.json:
{
"version": "1.0.0-*",
"description": "foo bar Class Library",
"authors": [ "foo bar" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"frameworks": {
"net451": { },
"dotnet5.4": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516"
}
}
}
}
Esto es lo que he probado:
- Reemplazar "dotnet5.4" con "net451" (y eliminarlo) como se encuentra en esta respuesta .
El resultado es el mismo error.
- Reemplazando "dotnet5.4" por "net45" y dejando el "net451". Esto resulta en un nuevo error:
Tu project.json no tiene una sección de tiempos de ejecución. Debe agregar '"runtimes": {"win": {}}' a su project.json y luego volver a ejecutar NuGet restore.
Intenté hacer lo que sugería este error y agregar
"runtimes": {
"win": {}
},
Esto me dio este error, que parece que no puedo superar:
Su project.json no enumera 'win' como un tiempo de ejecución específico. Debe agregar '"win": {}' dentro de su sección "runtimes" en su project.json, y luego volver a ejecutar NuGet restore.
Ya he añadido "ganar", y esto empieza a parecer una pista falsa. ¿Qué estoy haciendo alterando el project.json directamente? ¿NuGet no está manejando esto?
fuente
Respuestas:
De hecho, acabo de descubrir el problema. Terminé haciendo clic
Restore Nuget Packages
en el nivel de la solución y logré compilar miPCL
archivo y luego el resto de mi solución.Espero que esto ayude.
fuente
Tuve el mismo problema y terminé teniendo que eliminar no solo el contenido de
bin
y lasobj
carpetas, sino también el.vs
directorio de la solución.fuente
Tuve el mismo problema: esto ocurre aún usando Visual Studio 2017.3, que usa archivos .csproj en lugar de project.json. Curiosamente, el mensaje de error todavía contiene el texto "project.json".
Parece que la causa de este problema es un archivo de bloqueo o un
obj\project.assets.json
archivo (según su versión de VS) de una compilación anterior, que no se elimina durante una limpieza, como se describe aquí .Eliminar manualmente el
/obj
directorio es una solución rápida.Si tiene un proyecto "nuevo" (por ejemplo, .NET Core o proyecto netstandard creado en VS 2017) y un proyecto "antiguo" en el mismo directorio (por ejemplo, proyecto .NET 4.6 creado en VS 2015), parece que lucharán continuamente porque ambos usan el
./obj
directorio de diferentes maneras. Más info aquí. .La solución alternativa de msbuild es hacer que uno de sus proyectos use un
obj
directorio diferente . Agregué esto a mi "antiguo" csproj:fuente
Descubrí que un project.lock.json no autorizado me estaba causando este problema. Una vez que eliminé el archivo, el problema desapareció.
Aquí hay algo de documentación sobre project.lock.json.
Otro consejo sería asegurarse de que project.lock.json se ignore en su archivo git ignore y probar un git clean completo. Sin embargo, asegúrese de comprender las implicaciones de una limpieza de Git antes de hacerlo.
fuente
Tuve el mismo problema después de actualizar a Visual Studio para Mac 7.4 (compilación 1033):
No tengo ningún archivo de proyecto json. Los consejos aquí tampoco ayudaron, así que tuve que averiguar por las malas que tenía que instalar el último SDK de Android (Oreo 8.1) además de mi SDK de destino (Nougat 7.1).
fuente
Tengo el mismo problema, pero lo resolví agregando el recurso de paquete de nugget adecuado en
vs2017-->tools-->options-->Nugetpacakge manager--->updated
la URL del paquete correspondiente.Consulte la imagen de abajo
fuente