c# - studio - .Net 2015 Referencias con triángulo amarillo para paquetes Nuget en bibliotecas portátiles
paquetes nuget c# (6)
- Copia tus archivos de proyecto a otra carpeta
- Eliminar carpeta con el proyecto de la solución.
- Crear nuevo proyecto con el mismo nombre.
- Copie los archivos del paso 1 al nuevo proyecto.
- Paquetes de restauración
Sé que la pregunta se ha formulado anteriormente, pero ninguna de las resoluciones sugeridas funciona para mí, por lo que voy a formularla nuevamente y espero recibir nuevas sugerencias. Algunos de los artículos que he leído:
VS .Net Referencias con triángulo amarillo ¿Por qué aparece un icono de advertencia cuando agrego una referencia a un proyecto de complemento MEF? El signo de exclamación en el icono del triángulo amarillo (dentro del Explorador de soluciones)
Mis 5 bibliotecas portátiles definitivamente están dirigidas a los mismos marcos (¡lo he comprobado y vuelto a verificar, ya que esta fue una de las sugerencias!):
- .NET Framework 4.5
- ASP.NET Core 1.0
- Windows Phone 8
- Windows Phone 8.1
- Windows Phone Silverlight 8
- Xamarin.Android
- Xamarin.iOS
- Xamarin.iOS (clásico)
Lo que he intentado / hecho hasta ahora:
- Elimine las referencias del paquete Nuget manualmente de todos los proyectos.
- Verifique cada .csproj y asegúrese de que las referencias hayan sido eliminadas.
- Eliminar la carpeta de paquetes en la raíz de mi solución
- Intenté reinstalar todos los paquetes a través del administrador de la consola. Aún no se muestra ningún error, todavía se muestra un triángulo amarillo.
- Intenté reinstalar todos los paquetes a través del administrador de Nuget. Aún no se muestra ningún error, todavía se muestra un triángulo amarillo.
Aquí está la sección de una de mis bibliotecas de clases portátiles:
<ItemGroup>
<Reference Include="crypto">
<HintPath>../../../packages/Portable.BouncyCastle.1.8.1/lib/portable-
net4+sl5+wp8+win8+wpa81+MonoTouch10+MonoAndroid10+xamarinmac20+xamarinios10
/crypto.dll
</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>../../../packages/Newtonsoft.Json.8.0.3/lib/portable-
net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll
</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http">
<HintPath>../../../packages/Microsoft.Net.Http.2.2.29/lib/portable-
net40+sl4+win8+wp71+wpa81/System.Net.Http.dll
</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Extensions">
<HintPath>../../../packages/Microsoft.Net.Http.2.2.29/lib/portable-
net40+sl4+win8+wp71+wpa81/System.Net.Http.Extensions.dll
</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Primitives">
<HintPath>../../../packages/Microsoft.Net.Http.2.2.29/lib/portable-
net40+sl4+win8+wp71+wpa81/System.Net.Http.Primitives.dll
</HintPath>
<Private>True</Private>
</Reference>
El camino de mi proyecto físico es:
C: / xxxx / xxxxxx / xxxxx-xxxxxxx
de modo que tomando bouncycastle como ejemplo y basado en lo anterior, asumo que el camino completo se vería así:
C: / xxxx / xxxxxx / xxxxx-xxxxxxx / packages / Portable.BouncyCastle.1.8.1 / lib / portable-net4 + sl5 + wp8 + wpa81 + MonoTouch10 + MonoAndroid10 + xamarinmac20 + xamarinios10 / crypto.dll
Esto parece ser un problema solo en mis bibliotecas portátiles, ya que he reinstalado todos los paquetes Nuget en mi solución uwp y todos funcionaron como se esperaba. La parte frustrante es que mi proyecto, que todavía se encuentra en su ubicación original, está funcionando perfectamente bien. He desinstalado los paquetes y los reinstalé y todo está funcionando al 100% como se esperaba.
¿Alguien tiene alguna otra sugerencia?
¡Me di cuenta de cuál era el problema!
Como se mencionó a @Gusman, tuve mi interruptor de advertencia apagado. Una vez que los encendí, obtuve lo siguiente para mis proyectos portátiles:
Warning: IDE0006 - Error encountered while loading the project. Some project
features, such as full solution analysis for the failed project and projects
that depend on it, have been disabled
y proporcionó un enlace a este artículo github.com/dotnet/roslyn/wiki/…
Después de seguir las instrucciones proporcionadas e inspeccionar los numerosos archivos que terminan en designtime.log
, noté que todos ellos tenían un Nuget
refería a un paquete de Nuget
, pero como se mencionó, los había eliminado de mi proyecto, así que fui a re .csproj
el .csproj
de uno de ellos y esto es cuando .csproj
el (los) problema (s)!
En realidad hay 2 problemas:
La referencia de
Microsoft.BCL.Build
paraNuget
no se elimina correctamente.Al volver a agregar
Microsoft.BCL.Build
paqueteMicrosoft.BCL.Build
Nuget, no establece la ruta correctamente en el.csproj
A continuación se muestra un ejemplo de la falla:
<Import Project="../../../packages/Microsoft.Bcl.Build.1.0.21
/build/Microsoft.Bcl.Build.targets" Condition="Exists
(''../../../packages/Microsoft.Bcl.Build.1.0.21
/build/Microsoft.Bcl.Build.targets'')" />
<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.Bcl.Build.1.0.21/build/
Microsoft.Bcl.Build.targets'')" Text="$([System.String]::Format
(''$(ErrorText)'', ''../packages/Microsoft.Bcl.Build.1.0.21
/build/Microsoft.Bcl.Build.targets''))" />
<Error Condition="!Exists(''../../../packages/Microsoft.Bcl.Build.1.0.21/build/
Microsoft.Bcl.Build.targets'')" Text="$([System.String]::Format
(''$(ErrorText)'', ''../../../packages/Microsoft.Bcl.Build.1.0.21/
build/Microsoft.Bcl.Build.targets''))" />
</Target>
Como puede ver, la primera línea, es decir, <Import Project="../../../packages/Microsoft.Bcl.Build.1.0.21>
no debería estar allí y, sin embargo, parece permanecer en el proyecto a pesar de que Microsoft.BCL.Build
ha sido eliminado.
Si lo necesitas, déjalo y arregla la segunda entrada ya que esto es lo que hice. Como puede ver, hay dos entradas que verifican el paquete Microsoft.BCL.Build
Nuget
. En mi caso, simplemente quité el primero:
`<Error Condition="!Exists(''../packages/`
y guardé este:
`<Error Condition="!Exists(''../../../packages/`
Una vez que terminé de editar .csproj
, volví a cargar el proyecto en mi solución y no solo se resolvió el problema de Microsoft.BCL.Build, sino que también se resolvieron todas las demás dependencias de Nuget que estaban marcadas con el triángulo amarillo.
Perdí la mayor parte de mi día en esto, pero espero que esto ayude a otros.
Me enfrenté al mismo problema en una solución en vs2017 con 2 proyectos para el framework DotNetCoreApp 1.1. Todos mis paquetes mostraban el signo de exclamación / triángulos amarillos. Una vez que ejecuté vs2017 como administrador, se resolvió.
Sé que es un post antiguo, pero recientemente he estado sufriendo ese error de advertencia luego de cambiar mi regazo. Hice una operación con TFS (en Visual Studio 2017) y de repente todas mis referencias tenían un icono de advertencia. Lo que encontré trabajando para mí es que: vaya al buscador de objetos, seleccione el cuadro combinado "Todos los componentes" y finalmente seleccione su marco. Para mí, funcionó como un encantado.
Si no ha recibido errores de salida durante la instalación y no hay advertencias en la compilación / reconstrucción. Simplemente:
- Reinicie Visual Studio
Tuve un mismo problema cuando cloné un proyecto en mi computadora portátil de GitHub. También se muestran triángulos amarillos en mi EntityFramework y AspNet.Identity. Lo que hice para resolver el problema en mi caso fue eliminar la carpeta de paquetes (que contiene los paquetes de Nuget) y restaurar los paquetes una vez que abrí el proyecto. Como resultado, esas advertencias se apagaron después de que reinicié VS2017.