Deseo probar la clase principal de un complemento haciendo referencia directa al proyecto del complemento e instanciando la clase del complemento. Cuando creo un proyecto de prueba de la aplicación de consola y agrego una referencia de proyecto al proyecto del complemento, aparece un icono de advertencia (triángulo amarillo con signo de exclamación) junto a la referencia en la lista de referencias.
Cuando agrego una referencia a la dll, la salida de compilación del ensamblaje del complemento, no recibo tal advertencia. ¿Qué podría estar tratando de decirme esta advertencia?
.net
mef
project-reference
ProfK
fuente
fuente
Respuestas:
Como se menciona en los comentarios de la pregunta, las diferentes versiones de .NET Framework entre los proyectos pueden causar esto. Verifique las propiedades de su nuevo proyecto para asegurarse de que no se esté utilizando una versión predeterminada diferente.
fuente
Encontré el mismo problema con una aplicación web ASP.Net y dos proyectos de clase de biblioteca que debían mencionarse dentro de la aplicación web. No tenía información sobre por qué falló la compilación y las referencias no eran válidas.
La solución fue asegurar que todos los proyectos tuvieran el mismo Marco Objetivo:
En Visual Studio 2015: proyecto de clic derecho> Propiedades> Aplicación> Marco de destino
Ahorre, limpie y reconstruya la solución. Las referencias del proyecto ya no deberían aparecer como advertencias amarillas y la solución se compilará.
Mi aplicación web apuntaba a .Net 4.5, mientras que los otros dos proyectos de clase de biblioteca dependiente apuntaban a .Net v4.5.2
fuente
Para ambos (o todos) los proyectos que desea usar juntos:
Haga clic derecho en el proyecto> Propiedades> Aplicación> Framework .NET de destino
Asegúrese de que ambos (o todos) sus proyectos estén utilizando la misma versión de .NET Framework.
fuente
Asegúrese de que todas las versiones sean iguales para cada proyecto, haga clic en cada proyecto y vea la versión aquí Proyecto> Propiedades> Aplicación> Marco .NET de destino
a. Vaya a Herramientas> Nuget Package Manager> Package Manager Console Type Update-Package -Reinstall (si no funciona, continúe con 2.b )
si. ESTO ES CRÍTICO PERO LA MAYOR POSIBILIDAD QUE FUNCIONARÁ . Elimine <Target> Quizás con varias líneas </ Target> que generalmente se encuentran en la parte inferior de .csproj.
Guarde, cargue y cree la solución.
fuente
Vuelva a instalar todos los paquetes en todos los proyectos de la solución actual:
fuente
Asegúrese de tener los proyectos destinados a la misma versión de marco . La mayoría de las veces la razón sería que el proyecto actual (donde está agregando referencias de otro proyecto) apunta a una versión de .NET Framework diferente a las demás .
fuente
Verifique el NETFramework del dll referido y el Proyecto donde está agregando la DLL. Ej: DLL ==> SupportRuntime version = "v4.0" Proyecto ==> SupportRuntime version = "v3.0"
Obtendrá el icono de advertencia. Solución: haga que la versión dll sea consistente.
fuente
Para mí, me encontré con este problema al hacer referencia a una biblioteca de clases .NET Standard 2.0 en una aplicación de consola .NET Framework 4.7.1. Sí, los marcos son diferentes, pero son compatibles (se supone que .NET Standard debe coincidir con .NET Core y .NET Framework). Intenté limpiar, reconstruir, eliminar y leer la referencia del proyecto, etc. sin éxito. . Finalmente, salir de Visual Studio y volver a abrir resolvió el problema.
fuente
Ha pasado mucho tiempo desde que se hizo esta pregunta, pero si alguien todavía está interesado, recientemente me encontré con iconos similares. Estaba compilando un proyecto de C # .net usando VS 2008. Descubrí que VS no podía localizar los ensamblajes para esas referencias. Cuando hice doble clic en VS, actualicé las referencias y eliminé los íconos de algunos de [EDITAR: que AHORA podría localizar]. Para las referencias restantes, tuve que compilar los ensambles respectivos.
fuente
Agregando mis 2 centavos a la respuesta @ kad81,
Vaya a Visual Studio -> BUILD -> Configuration Manager
En el menú desplegable "Plataforma de soluciones activas" en la esquina superior derecha (la mía es VS 2012), si se trata de "Plataformas mixtas", cámbiela a la plataforma adecuada en función de sus ensambles de referencia de terceros.
Luego, en cada uno de los proyectos de la lista, asegúrese de seleccionar la misma plataforma para todo el proyecto. (si no existe x86, seleccione "", luego puede seleccionar "x86").
Reconstruya los proyectos de la biblioteca primero y luego haga referencia a los proyectos. Espero que esto ayude.
fuente
Intenta cerrar y abrir VS.
Parece tonto, pero después de 1 hora de seguir lo anterior y encontrar todo alineado bien. Reinicié VS 2017 y los problemas desaparecieron.
fuente
En el núcleo de Asp.net, en algún momento se muestra alerta si cambia el espacio o el nombre del proyecto. Para eliminar este tipo de alertas, simplemente descargue Project y cárguelo nuevamente. Si el problema persiste, significa que no puede encontrar su referencia de ensamblaje.
fuente
Tenía estos íconos por una razón diferente. Tenemos una gran solución para todos nuestros proyectos (casi 100). Hice una subselección de los proyectos que me interesaban e hice una nueva solución. Sin embargo, las referencias donde el proyecto hace referencia en lugar de referencias a los dll compilados ...
Después de algunas investigaciones encontré este enlace en GitHub que explica que este es un nuevo comportamiento en VS2015.
En la página de GitHub, explican una solución alternativa para convertir referencias de proyecto en referencias binarias.
fuente
Para arreglar algunas cosas que no funcionan, tiene sentido eliminar algunas bibliotecas a veces, ¿cómo no sonaría raro?
De todos modos, creo que el problema es demasiado amplio y podría deberse a diferentes factores. , así que quiero compartir mi situación / solución.
Tenía un proyecto (traído por el cliente) con las bibliotecas Xamarin Forms y Telerik. En general, la cosa estaba relacionada con los componentes, que las bibliotecas no están incluidas en la carpeta de paquetes, ni están disponibles a través de Nuget (de pago).
Las referencias de todo el proyecto fueron "amarillas", se veía horrible y aterrador.
La solución fue simplemente eliminar esas referencias de Telerik (incluidos algunos controles en el código que estaban usando eso). Justo después de eso, todas las referencias obtuvieron mágicamente su color gris normal común y los errores (en su mayoría) desaparecieron.
"Principalmente", porque los mensajes de error "todo rojo alrededor" sobre "el elemento no está definido en ningún lado" a veces todavía ocurren. Eso es extraño y trae inconvenientes, pero aún puedo compilar y ejecutar los proyectos: solo necesito limpiar la solución, reiniciar Visual Studio, rezar un poco, limpiar de nuevo, eliminar las carpetas obj / bin, reiniciar de nuevo, y funciona bien.
La clave es eliminar las referencias de bibliotecas no disponibles , ya que los mensajes de error dicen absolutamente otra cosa. (Por ejemplo, algo como "Xamarin.Build.Download.XamarinDownloadArchives no encontrado o no puede encontrar algo", etc., pero eso podría significar que no tiene algunas referencias disponibles.
Luego quite la carpeta de paquetes, vuelva a cargar / vuelva a abrir el proyecto / solución, vaya a "Administrar paquetes Nuget" y haga clic en el botón "Restaurar".
fuente
Usando Visual Studio 2019 con todos los proyectos dirigidos a .Net Core 3.1, la solución fue:
fuente
También enfrenté el mismo problema, pero mi caso fue un poco diferente a los anteriores. Traté de abrir un proyecto creado en una computadora diferente. Descubrí que la ruta a la carpeta del paquete no se actualiza cuando agrega una referencia, por lo que reiniciar VS, cambiar la versión de .NET o cualquier recomendación mencionada no resuelve el problema. Abrí el archivo csproj en notepad ++ y corregí todas las rutas relativas a la carpeta de paquetes. Luego; Todas las advertencias se han ido. Espero eso ayude.
fuente
en VS 2017 Haz una limpieza y luego construye
fuente
Gracias a todos por la ayuda. Aquí hay un desglose de cómo solucioné mi problema:
Haga clic derecho en su proyecto> Propiedades
En Aplicación, cambie el Marco de destino. En mi caso, ImageSharp estaba usando .Net 4.6.1. Puede encontrar esto en su package.config.
Ve a las referencias de tu proyecto. Notarás que SixLabors tiene un triángulo amarillo. Tienes que actualizar el paquete NuGet.
Haga clic derecho en Referencias> Administrar paquetes NuGet.
Actualiza SixLabors.
Es posible que tenga ligeras actualizaciones de código (consulte a continuación), pero esto solucionó mi problema.
¿Convertir ImageSharp.Image a ImageSharp.PixelFormats.Rgba32?
fuente
En Visual Studio 2019, uno de los marcos de destino de mis proyectos era .net core, pero hacía referencia a otro proyecto cuyo marco de destino era .net estándar. Cambié todos los proyectos para hacer referencia al estándar .net y los íconos desaparecieron. Para ver cuál es su proyecto, haga clic derecho y haga clic en propiedades y mire el marco de Target. También puede hacer clic normalmente en el proyecto y mirar la etiqueta <TargetFramework> en <PropertyGroup>
fuente
En una solución multiproyecto, si todo lo demás falla ... En el proyecto de inicio, verifique. Dependencias-> Asambleas y ver si el proyecto al que se hace referencia está errado. Eliminarlo y reconstruir.
fuente