totalmente terminen solución sea revirtiendo retrasa restaurarse restaurar referencia que puede proyecto paquetes paquete los instalar hasta hace guardó guarde faltan este error equipo correctamente con compilación compatible cambios antes administrar actualizar c# visual-studio visual-studio-2015 nuget azure-devops

c# - solución - la compilación se retrasa hasta que terminen de restaurarse los paquetes de bower o npm



Reparando paquetes y referencias de NuGet de una vez por todas (2)

Windows 8.1 Enterprise x64, Visual Studio 2015, MVC 5, EF 6, VS en línea usando git

Soy un desarrollador relativamente nuevo con Visual Studio (aproximadamente nueve meses), y desde que empecé he tenido un tiempo increíblemente difícil con las referencias y los paquetes de NuGet. Todas mis referencias funcionaron correctamente el viernes cuando apagué mi computadora durante el fin de semana. No toqué la computadora en todo el fin de semana, ahora arranqué hoy y tengo un montón de errores de referencia:

(Hay 6,262 errores en total, pero obviamente no puedo hacer una captura de pantalla de todo).

Como dije, este tipo de problema ocurre muy a menudo, y es increíblemente frustrante. Cosas que he probado:

  • Asegúrate de que todas las referencias que arrojan los errores sean referenciadas
  • Des / reinstalar los paquetes lanzando los errores en NuGet
  • Elimine por completo el contenido de la carpeta de packages y deje que NuGet los restaure (todos reinstalados, las vistas tienen los mismos errores que antes)
  • Asegúrese de que todas las referencias estén configuradas en Copy Local
  • Cierre la solución, elimine todas las carpetas bin y obj , reinicie la computadora, limpie, reconstruya
  • Asegurado que todas las referencias necesarias estén en el web.config relevante (ya sea dentro de Views o en la raíz)
  • Verifique la opción NuGet para restaurar los paquetes faltantes (no apareció, todos los paquetes están en mi carpeta de packages locales)
  • Otras cosas de modo que estoy seguro de que he olvidado enumerar aquí

Estoy al final de mi ingenio con estos paquetes y referencias. Es una solución diferente cada vez, y esta vez no puedo entenderlo. ¿Me estoy perdiendo alguna solución obvia, algo que pasé por alto? ¿Hay alguna manera de tomar una copia de seguridad cuando esto está funcionando y restaurarla cuando las cosas se rompen? Cualquier idea, ya sea que ayude con el problema actual o para solucionar el problema subyacente, será muy apreciada.

Nota adicional

El problema NO es solo con las vistas, los controladores también están arrojando errores. Específicamente:

No se pudo encontrar el tipo o el nombre de espacio de nombres ''Controlador'' (¿falta una directiva de uso o una referencia de ensamblado?)

(Literalmente dice Controller , eso no es algo que haya cambiado por privacidad o lo que sea).

Estos se lanzan a pesar del hecho de que he using sentencias para todos los espacios de nombres necesarios. Las propias declaraciones de using funcionan correctamente, pero el error aparece en el código. La solución automática sugerida es hacer referencia a todo manualmente: por ejemplo, var sb = new StringBuilder(); quiere que cambie la línea a var sb = new System.Text.StringBuilder(); . La prueba de que la corrección no corrige el problema, se produce el mismo error pero en el System lugar de StringBuilder .

Información adicional solicitada

  • Uso git con VS Team Services (pero los paquetes se ignoran con .gitignore ).
  • Yo y otra persona trabajamos en esto, pero la otra persona no lo ha tocado en absoluto (ni siquiera halando el control remoto) en varias semanas.
  • Las referencias en el archivo .csproj están en el formato ../../../packages/ (correcto para la ubicación relativa al archivo .csproj ).
  • Targeting .NET 4.6 (siempre ha sido, eso no es nuevo)
  • Todas las referencias se resuelven, sin signos de exclamación en la lista de referencias.

Proyectos nuevos

Hay una sola cosa que debes hacer para que los paquetes funcionen correctamente con git:

Cuando cree un repositorio, asegúrese de agregar un .gitignore adaptado para el desarrollo de Visual Studio. Puede buscar en Google un archivo de este tipo o tomarlo desde here .

Esto asegurará que no cometas nada que pueda causar problemas más adelante.

Esto debería resolver muchos de los problemas que suelen ocurrir al registrar paquetes en un repositorio de códigos. Puede agregar / eliminar paquetes y actualizar paquetes y también poder clonar el repositorio a una nueva máquina y los paquetes se restaurarán automáticamente.

Proyectos existentes

Esto es bueno para nuevos proyectos. Si ya tiene un proyecto con un gran problema, es muy difícil solucionarlo, ya que Visual Studio conserva las versiones de paquetes en varios lugares: packages.config y app.config (y web.config cuando sea relevante).

Opción 1 - arreglar el proyecto actual

Puede eliminar todos los paquetes (eliminar todas las referencias de todos los proyectos y eliminar el contenido del paquete).

Asegúrese de que los paquetes ya no aparezcan en ningún archivo (por ejemplo, packages.config o app.config). Ahora agregue .gitignore y luego vuelva a agregar los paquetes.

Opción 2 - Crear un nuevo proyecto

Si no funciona, inicie un nuevo proyecto, agregue el .gitignore, transfiera todo el código (solo su código) e instale los paquetes.


No estoy muy familiarizado con cómo funciona Git en VS, pero recuerdo una vez recientemente cuando usé TFS que desvincula la solución del control de origen, arregla todos los paquetes, limpia y reconstruye antes de volver a vincularlos. referencias

Pido disculpas si Git funciona de manera diferente dentro de VS.