Entiende el código bien antes de adaptarlo a tu trabajo si ttienes algo que aportar puedes dejarlo en la sección de comentarios.
Solución:
Actualización: la cuenta de Twitter de VisualStudio me respondió para señalar que se trata de un error y que están trabajando en una solución para el futuro….
Tengo dos respuestas a mi mensaje:
1) El problema de uso señalado con las cosas atenuadas era en realidad un problema de ReSharper. Si actualiza a VS 2017 15.3 y usa R#, asegúrese de actualizarlo también a 2017.2.
2) El problema de los triángulos amarillos está siendo analizado por el equipo de Visual Studio pero, sinceramente, creo que está relacionado con advertencias en la compilación de que esas referencias están siendo forzadas a dependencias más bajas (es decir, Newtonsoft en diferentes niveles) o vistas previas. La rápida evolución del mundo .NET 2.0 puede haber exacerbado este problema. Los triángulos amarillos han significado tradicionalmente que faltan, pero revise sus advertencias para ver si están relacionadas y luego revise la cadena de dependencia. Actualizaré esta respuesta una vez que tenga noticias del equipo de VS (gracias a ellos y a Damian Edwards + Scott Hanselman por ayudarme con esto en Twitter).
Estaba experimentando el triángulo amarillo en el problema de las referencias después de actualizar los proyectos en mi solución (.NET 4.6.1) al nuevo estándar .NET .csproj
formato que viene con VS2017. Las referencias por las que estaba recibiendo advertencias eran ProjectReference
tipo (aunque parecía derramarse en PackageReference
para paquetes comunes en los proyectos en cuestión).
No tenía ninguna advertencia de compilación y no había nada en el resultado detallado de la compilación que indicara cuál podría ser la causa.
Podría seguir todas las advertencias hasta un solo proyecto en mi solución. Pude resolverlo eliminando ese proyecto de mi solución y luego volviéndolo a agregar y volviendo a agregar solo las referencias necesarias del proyecto.
Parece que el problema estaba relacionado con referencias de proyectos innecesarias (o posiblemente circulares) causadas por el nuevo soporte de dependencias transitivas. Después de eliminar el proyecto y volver a agregarlo con solo el mínimo ProjectReference
s y confiando en el soporte de dependencias transitivas para propagar la dependencia, todas las advertencias desaparecieron.
Esto también resolvió un problema en el que el proyecto en cuestión fallaba en la compilación durante una línea de comando. msbuild
inicié la compilación en mi servidor CI que solo tiene instaladas las herramientas de compilación VS2017 (no el IDE completo).
Tuve el mismo problema, algunas de las referencias estaban marcadas con el triángulo amarillo. Sin embargo, pude construir y ejecutar mi proyecto. Logré eliminar estas advertencias siguiendo los pasos de esta respuesta: .Net 2015 Referencias con triángulo amarillo para paquetes Nuget en bibliotecas portátiles
Encendí el rastreo para Visual Studio, tuve las siguientes advertencias en los archivos de registro para todas las referencias cargadas incorrectamente:
Se encontró un conflicto entre ‘Referencia:Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL’ y ‘Reference:C:Program Files (x86)Visual StudioMSBuildMicrosoft Microsoft.NET.Build.Extensionsnet461refMicrosoft.Win32.Primitives.dll’. Elegir ‘Referencia:C:Archivos de programa (x86)Visual StudioMSBuildMicrosoftMicrosoft.NET.Build.Extensionsnet461refMicrosoft.Win32.Primitives.dll’ porque AssemblyVersion ‘4.0.3.0’ es mayor que ‘4.0.2.0’.
Para ser precisos, hice los siguientes pasos:
- Se eliminó la condición de error de mi archivo .csproj
- Remoto
parámetro para referencias no cargadas en el archivo .csprojtrue - Paquetes no cargados eliminados de lib y árbitro carpetas en correspondiente MSBuild carpeta.
- Paquetes eliminados de paquetes carpeta en solución.
- Paquetes nuget restaurados.
No estoy seguro de que todos estos pasos sean necesarios, pero funcionó para mí.
Reseñas y puntuaciones del artículo
No se te olvide comunicar este enunciado si lograste el éxito.