Busqué este problema pero ninguna de las soluciones funcionó. Tengo instalado Visual Studio Professional 2015 y estoy usando TFS. Mi versión de NuGet es 3.1.6. Este problema solo ocurre en mi proyecto C # Web API / MVC.
Recibo el siguiente error:
Este proyecto hace referencia a los paquetes NuGet que faltan en esta computadora. Use NuGet Package Restore para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105 . El archivo que falta es .. \ packages \ Microsoft.Net.Compilers.1.0.0 \ build \ Microsoft.Net.Compilers.props
- No tengo la carpeta .nuget en mis soluciones.
- Tengo una carpeta de paquetes en la solución y cuando la elimino, parece que NuGet reconstruye las dependencias, pero el proyecto aún tiene el error anterior.
- Intenté eliminar el proyecto de TFS y no lo solucionó.
- Junto con el error anterior, todas las referencias en el proyecto tienen señales de advertencia amarillas y dicen que faltan.
- Cuando revisé el NuGet Package Manager para el proyecto, todo lo que "falta" tiene una marca verde al lado, incluidos Microsoft.Net.Compilers.
- Intenté agregar un nuevo proyecto Web API / MVC y se enfrentó a un problema similar en el que la mayoría de las referencias como Owin "faltaban" con la señal de advertencia amarilla.
visual-studio
nuget
visual-studio-2015
Ques Tion
fuente
fuente
Respuestas:
Tuve el mismo error (falta exactamente el mismo paquete) hoy. También creé un proyecto MVC + Web API.
Sucedió porque moví los archivos de la aplicación (incluido el archivo .csproj) a otra ubicación. Actualicé manualmente el archivo .sln, pero todas las dependencias de los paquetes están ahora (Visual Studio 2015) almacenadas en el archivo .csproj.
Editar el archivo .csproj y corregir la ruta relativa a la carpeta de la solución (que contiene la carpeta de paquetes) resolvió el problema para mí.
fuente
Resolví mi problema eliminando este código del
.csproj
archivo:fuente
CUIDADO: esto actualiza los paquetes para toda la solución, no solo el proyecto.
Si le falta un paquete nuget más que da su error al crear su solución, use el siguiente comando usando la Consola de comandos Nuget desde Herramientas> Nuget Package Manager> Package Manager Console. Reinstalará todos sus paquetes actuales.
Actualizar:
Puede pasar un nombre de proyecto específico como parámetro.
fuente
Tenía este mensaje exacto frustrante. Lo que finalmente funcionó para mí fue eliminar todos los archivos y carpetas dentro de / paquetes y dejar que VS recupere todo en la próxima compilación.
fuente
Restore Nuget Packages
.Tiberiu es correcto. Tuve que editar mi archivo .csproj ya que los archivos se movieron y causaron este problema
Cambié en la parte superior del archivo y en la parte inferior
fuente
de esta manera resolvió mi error: para abrir el archivo .csproj para su actualización en Visual Studio 2015+ Solution Explorer:
Haga clic con el botón derecho en el nombre del proyecto -> Descargar proyecto
Haga clic con el botón derecho en el nombre del proyecto -> Editar .csproj
Elimina las siguientes líneas:
Haga clic con el botón derecho en el nombre del proyecto -> Recargar proyecto
Finalmente construya su solución.
fuente
Resolví este problema eliminando el siguiente código del archivo .csproj
fuente
Una combinación de las 2 respuestas funcionó para mí. Primero modifiqué el archivo .csproj para eliminar la referencia a la versión 1.0.0
y luego lo hizo
del y funcionó.
fuente
Para mí, el problema era que cuando copié la solución a una nueva carpeta y la abrí, faltaba la carpeta Nuget como se muestra a continuación. Copié esta carpeta y todo funcionó. Nota: Esta misma carpeta estaba en nuestro control de origen, pero no en este proyecto de soluciones, era un directorio.
fuente
Simplemente habilite Restaurar paquete NuGet. Haga clic con el botón derecho en su solución> elija 'Habilitar restauración de paquete NuGet'.
Esto creará la carpeta .nuget con el archivo NuGet.Config y solucionará mi problema.
fuente
Estoy usando VS2012 y enfrento el mismo error. Eliminé la siguiente etiqueta de destino del archivo .csproj y comenzó a compilar sin ningún error.
fuente
Para ampliar algunas de las respuestas aquí, sí, puede eliminar el siguiente bloque de su archivo .csproj:
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
y esto soluciona el problema, sin embargo, en mi caso, noté que tenía referencias adicionales a .NET.Compilers y .CodeDom.Providers con diferentes versiones:
Cuando my packages.config solo hacía referencia a lo siguiente:
La eliminación de los elementos 1.0.0 del archivo .csproj solucionó el problema.
fuente
Para cualquiera que tropiece aquí con el problema que tuve (algunos pero no todos los paquetes se restauraron en un servidor de compilación), la pieza final del rompecabezas para mí fue agregar un NuGet.config en la raíz de mi solución, hermano del .SLN archivo como David Ebbo explicó aquí: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html .
De la publicación del blog de Ebbo, el contenido del archivo para mí es simplemente
ACTUALIZAR:
La URL de la API NuGet ha cambiado para v3 (actual a partir de septiembre de 2016). Desde https://www.nuget.org/
fuente
El mensaje de error es completamente correcto. Intenté todos los trucos y ninguno funcionó. El proyecto (prueba simple de aplicación web MVC) se trasladó de Windows 8.1 VS 2015 Community a mi nuevo cuadro de prueba en Windows 10. Se aplicaron todas las últimas actualizaciones de VS 2015. Ni siquiera pude instalar ninguna versión más nueva del paquete de compiladores.
Finalmente acabo de copiar Microsoft.Net.Compilers.1.0.0 del antiguo proyecto al nuevo y funcionó. Entonces podría comenzar a actualizar otros paquetes a la versión más nueva. A mí me parece un error en el proceso de actualización del proyecto Nuget.
NOTA: El proyecto original se creó en VS 2015 y no tiene ninguna metodología nuget heredada.
fuente
Solución que funciona en mi caso: Visual Studio 2015 Enterprice, proyecto .NET 4.6.1
fuente
Para mí, los paquetes estaban allí bajo la ruta correcta, pero las carpetas de compilación dentro de la carpeta del paquete no. Simplemente eliminé todos los paquetes que decía que faltaban y reconstruí la solución y creó con éxito las carpetas de compilación y los archivos .props. Entonces los mensajes de error fueron correctos al informarme que algo faltaba.
fuente
Tuve este problema como una compilación fallida en Azure, cuando se implementó desde Git.
Resulta que mi .gitignore excluía la
build
carpeta de..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props
.Una vez que la
build
carpeta fue (forzada) comprometida con Git, el problema se resolvió.fuente
Resolví el mismo problema con los siguientes pasos
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" />
del archivo package.config.Edite el archivo de proyecto .csproj y elimine la configuración a continuación.
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" /> </Target>
Update-Package –reinstall
Los puntos # 2 y 3 fueron dados por otros usuarios y los aprecio. Punto # 1, eliminar el
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
archivo package.config es más importante. Además, después de ejecutar el comando mencionado en el punto 3, el problema se resolvió. Todos los paquetes no deseados eliminados y la referencia de paquete requerida actualizadaEspero que esto ayude a alguien.
fuente
No pude encontrar ninguna solución a esto, así que agregué una copia de nuget.exe y un script de PowerShell al directorio raíz de la solución llamada prebuild.ps1 con el siguiente contenido.
Llamé a este script de PowerShell en mi compilación en la ruta de guion Pre-Build
fuente
El mío funcionó cuando copié la carpeta de paquetes junto con el archivo de solución y la carpeta del proyecto. Simplemente no copié la carpeta de paquetes del lugar anterior.
fuente
También puede usar el mensaje de error sugerido como una pista. A continuación, le indicamos cómo encontrar los paquetes de administración para la solución y hacer clic en resolver el paquete nuget faltante.
Eso es
fuente
Comente la opción del compilador en
WebConfig
:Reconstruir si todo está bien, no es necesario continuar, de lo contrario, haga clic derecho en el proyecto, haga clic en 'descargar proyecto' Haga clic derecho en el proyecto nuevamente y edite el archivo .csproj
Valide la ruta de Codedom, no tenía net45 en rutas anteriores, agréguela manualmente, guarde, cargue, reconstruya. Deberia de funcionar.
fuente
Como muchos sugirieron que eliminar la
<Target>
etiqueta puede hacer que sea compilable. Sin embargo, tenga cuidado con el hecho de que tiene un efecto secundario cuando lo hace para proyectos de prueba.Recibí un error relacionado con el
MSTest.TestAdapter
paquete nuget al compilar. Resolvió ese problema eliminando la<Target>
etiqueta. Aunque hizo que la construcción fuera exitosa, los métodos de prueba no se pudieron descubrir. El explorador de pruebas no enumerará los métodos de prueba en ese proyecto y Run Test o Debug Test no funcionarán tan bien.Encontré esto mientras usaba
Visual Studio 2017
y.Net framework 4.7
, muy bien puede suceder en otras versionesfuente
$(SolutionDir)
trabajo pero actualizar errores. Yo pregunté eso aquí . ¿Tienes alguna solución encontrada?El problema para mí era que NuGet no podía obtener / actualizar automáticamente los paquetes porque la ruta completa del archivo sería demasiado grande. Solucionado moviendo mi solución a una carpeta en mis Documentos en lugar de una carpeta profundamente anidada .
Luego, puede hacer clic con el botón derecho en la solución y seleccionar "Restaurar paquetes NuGet" (lo que probablemente no sea necesario si solo lo crea y deja que lo haga por usted), y luego seleccione "Administrar paquetes NuGet para la solución" para obtener todos los paquetes actualizado a la última versión.
Esto fue para una solución de una aplicación ASP MVC de muestra descargada del sitio web de Microsoft.
fuente
Para los ingenieros de DevOps / build, probablemente pueda arreglar esto en ejecución
nuget restore
contra el SLN afectado, o proyectar si carece de un SLN. Tengo que hacer esto para nuestras compilaciones de CI / CD para todos nuestros proyectos de UWP.VS2015
call "%VS140COMNTOOLS%VsDevCmd.bat"
o
VS2017
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
call nuget restore MyStuff.SLN
ocall nuget restore MyStuff.csproj
si no hay SLN.fuente
No estoy seguro de si esto ayudará a alguien, pero tuve este problema cuando borré el código fuente de mi máquina local sin haber guardado el archivo de solución en TFS. (Durante el desarrollo inicial, estaba haciendo clic derecho y registrando el proyecto en el Explorador de soluciones, pero olvidé volver a registrar la solución en sí misma). Cuando necesitaba trabajar en esto nuevamente, todo lo que tenía en TFS era el archivo .csproj, sin archivo .sln. Entonces, en VS, hice un Archivo -> Control de fuente -> Avanzado - Abrir desde el servidor y abrí el archivo .csproj. Desde allí hice un Guardar todo y me preguntó dónde quería guardar el archivo .sln. Estaba guardando este archivo .sln en el directorio del proyecto con las otras carpetas (App_Data, App_Start, etc.), no el directorio de nivel superior. Finalmente descubrí que necesito guardar el archivo .sln en un directorio de la carpeta del proyecto para que ' s en el mismo nivel que la carpeta del proyecto. Todos mis caminos se resolvieron y pude construirlo nuevamente.
fuente
Para mí, mi archivo gitignore estaba ignorando mi carpeta de paquetes. La siguiente línea de gitignore estaba causando el problema:
Eliminado y restaurado mi carpeta de paquetes. Espero que esto ayude a alguien más.
fuente
Obtuve una solución a este error, en realidad estaba teniendo una versión diferente de MSTest.TestAdapter (1.3.2) en mi carpeta de paquetes y en el archivo .csproj las referencias apuntaban a MSTest.TestAdapter (1.1.0). He reemplazado todos los MSTest.TestAdapter (1.1.0) a MSTest.TestAdapter (1.3.2), y esto resolvió mi problema.
fuente
Me doy cuenta de que esta pregunta es antigua, sin embargo, me encontré con esta misma situación hoy y quería arrojar mis 2 centavos por cualquiera que haya encontrado recientemente este problema. Un proyecto ASP MVC que había movido manualmente a una subcarpeta en mi solución y luego lo eliminé y leí en la solución, usando Visual Studio 2017, estaba dando el error mencionado. Mover las carpetas "lib" y "paquetes" a la raíz de la misma subcarpeta que el proyecto MVC solucionó mi problema.
fuente
Estaba teniendo el mismo problema, resultó que uno de los proyectos a los que hacía referencia estaba fuera del directorio de la solución (y, por lo tanto, no compartía la misma carpeta '/ packages'). La solución que funcionó para mí fue abrir la solución del proyecto de referencia y construirla allí. Una vez que se construyó ese proyecto, los errores desaparecieron.
fuente