not - Error "Archivo de metadatos ''... / Release / project.dll'' no se pudo encontrar en Visual Studio"
error cs0006 (30)
Recientemente comencé a recibir este mensaje al azar:
No se pudo encontrar el archivo de metadatos ''... / Release / project.dll'' en Visual Studio
Tengo una solución con varios proyectos en ella. El modo de compilación actual es Depurar y todas las configuraciones de proyectos están configuradas en Depurar. Pero cuando trato de ejecutar el proyecto principal, a veces me da algunos errores, todos los cuales son "Archivo de metadatos ''... / Release / projectX.dll'' no se pudo encontrar" - y, mira, dice acerca de LIBERACIÓN carpeta, aunque el modo actual es Depurar. ¿Por qué? Traté de buscar una referencia a "Release / projectX.dll" dentro de todos los archivos de solución, y encontré uno en el archivo ResolveAssemblyReference.cache.
Hice una buena búsqueda a través de Internet y encontré algunas personas con un problema similar, pero no había solución, o al menos no solución de trabajo.
Traté de eliminar las referencias a esos proyectos y leerlos, pero en algún momento empiezo a recibir estos errores nuevamente.
Parece un error. ¿Por qué busca proyectos referenciados en las carpetas de Release cuando siempre uso el modo Debug?
PD. Para aquellos que encontraron este problema: no pude resolverlo de una manera fácil. Desapareció solo después de que reinstalé Windows :(
¿Revisó la configuración del administrador de configuración? En el diálogo de configuración del proyecto, esquina superior derecha.
En algún momento ocurre que entre todas las entradas de la versión entra una entrada de depuración. De ser así, la dependencia automática creada por la grapgh de dependencia de la solución se confunde.
COMPRUEBA TU CAMINO DEL PROYECTO. No debería tener carácter irregular como coma y espacio
por ejemplo, esta es una ruta incorrecta: d: / my applications / Project1
y esta es la verdadera ruta d: / my_applications / Project1
El estudio visual no puede construir el proyecto cuando hay un carácter no alfabético y numérico en su camino en el disco y no muestra ningún mensaje para este error.
Además, algunas herramientas de instalación tienen el mismo problema cuando comienzan la instalación y no se pueden extraer.
Cuando dice que eliminó las referencias a esos proyectos y los volvió a agregar, ¿cómo los volvió a agregar exactamente? ¿Usó la pestaña "Examinar" en el cuadro de diálogo "Agregar referencia" en Visual Studio? O bien, ¿usó la pestaña "Proyectos" (que enumera los proyectos vecinos en su solución)?
Editar : si usa la pestaña "Examinar" y agrega manualmente la referencia a su .dll que está ubicado en la carpeta / Release, entonces Visual Studio siempre buscará el .dll en esa ubicación, independientemente del modo en que esté actualmente en (Depurar o Liberar).
Si eliminó el archivo .dll real de la carpeta Release (ya sea manualmente o haciendo "Clean Solution"), su referencia se romperá porque el .dll no existe.
Sugeriría eliminar la referencia a ProjectX.dll y agregarla de nuevo, pero esta vez, use la pestaña "Proyectos" en el cuadro de diálogo "Agregar referencia". Cuando agrega una referencia de esta manera, Visual Studio sabe dónde obtener el .dll apropiado. Si estás en el modo de depuración, lo obtendrá de la carpeta / Debug. Si está en modo Release, la carpeta / Release. El error de compilación debería desaparecer, y ya no estará (inadecuadamente) haciendo referencia a un .dll de lanzamiento mientras está en modo de depuración.
En mi caso, fue causado por dos cosas (VS.2012):
1) Uno de los proyectos se configuró para AnyCPU en lugar de x86
2) Un proyecto al que se hizo referencia tenía de alguna manera la casilla "Crear" sin marcar.
Verifique su compilación | Configuration Manager para obtener una visión general de lo que se está creando y para qué plataforma. También asegúrate de verificar Debug & Release, ya que pueden tener configuraciones diferentes.
En mi caso, tuve algunos errores en mi código. Visual Studio mostró el error que tenía en lugar de los errores reales, como los errores de sintaxis o los nombres de clase desconocidos. Intente limpiar la solución y crear el proyecto después del proyecto. De esta manera descubrirá los errores reales.
De nuevo, esto es solo lo que causa el error para mí .
En ocasiones, VS2010 cambia mi configuración de Cualquier CPU a Plataformas mixtas. Cuando esto sucede, recibo este mensaje de error.
Para resolverlo, vuelvo a cualquier CPU:
1. Haga clic con el botón derecho en la solución y seleccione propiedades.
2. Haga clic en Propiedades de configuración y luego en el botón Administrador de configuración ...
3. En Plataforma de solución activa, seleccione Cualquier CPU
Encuentro que esto generalmente se me ocurre cuando todavía tengo una declaración de método en una interfaz, que una clase implementa, pero que luego eliminé y olvidé eliminarla de la interfaz también. Por lo general, solo guardo la solución completa cada 30 minutos y luego simplemente vuelvo a una versión anterior si no puedo encontrar el error.
Este problema se debe a los archivos pdb o CodeContracts, para resolverlo:
1) Limpie su carpeta de salida y reconstruya la solución.
2) Vuelva a configurar CodeContracts o deshabilítelo para la compilación temporal.
Espero que esto ayude.
Atentamente,
Estoy de acuerdo con la mayoría de las respuestas publicadas aquí. Sin embargo, si todas las soluciones sugeridas no funcionaron, considere que probablemente tenga otro tipo de error en su lista de errores, que le impide a VS crear el archivo DLL de un proyecto necesario para los otros proyectos. Entonces, sin importar el orden de compilación o la configuración, no podrá deshacerse del error de "metadatos" hasta que se solucionen los demás problemas.
He tenido este problema antes y la única forma que he encontrado para resolverlo es ejecutar Clean Solution y luego reiniciar Visual Studio.
La mayoría de los answares dicen que debe eliminar las bibliotecas de su solución, esto es cierto, pero cuando vuelva a agregar las bibliotecas, el error volverá a aparecer. Debe verificar si todas las bibliotecas a las que se hace referencia tienen un .NET framework compatible con .net framework de su solución. Luego arregle todos los errores en su código y reconstruya la solución.
Lo mismo me pasó hoy como lo describe Vidar.
Tengo un error de compilación en una Biblioteca auxiliar (a la que hacen referencia otros proyectos) y en lugar de decirme que hay un error en la Biblioteca auxiliar, el compilador genera una lista de errores de tipo MetaFile no encontrado. Después de corregir el error de compilación en la Biblioteca de ayuda, los errores de MetaFile desaparecieron.
¿Hay algún ajuste en VS para mejorar esto?
Me parece recordar haber tenido un problema similar hace unos meses. Lo solucioné temporalmente copiando el archivo DLL al que se hace referencia en la carpeta Release, satisfaciendo así las expectativas de Visual Studio. Más tarde, descubrí la referencia a la DLL de lanzamiento en mi código actual. Intente hacer una búsqueda a través del proyecto completo para / release / project.dll.
Además, he notado que los proyectos de prueba de unidad de Visual Studio a veces ponen un atributo "DeploymentItem" en cada uno de los métodos de prueba que apuntan a su DLL de destino, y si cambia entre Debug y Release, Visual Studio puede confundirse si el DLL ya no es en la ubicación esperada. En mi experiencia, estos atributos se pueden eliminar de forma segura si no los colocaste allí como parte de un escenario de "implementación única".
Para mí, esto fue causado por el objetivo de compilación que se reescribió para no generar el dll. Eliminar esto para volver al objetivo de compilación predeterminado solucionó el problema.
Para mí, por lo general, el marco de destino está desactivado (4.5.2 en lugar de 4.6). Si arregla el marco de trabajo objetivo del proyecto para que coincida con el marco de destino de la solución y la compilación, se creará un nuevo .dll.
Parece suceder cuando pagas una solución con múltiples proyectos que tienen referencias entre ellos, y no la has creado antes. Si tiene referencias directamente a los dlls, en lugar de hacer referencia al proyecto, obtendrá este mensaje. Siempre debe usar la pestaña Proyectos en el cuadro de diálogo Agregar referencia para agregar una referencia a un proyecto en la misma solución. De esta forma, VS puede saber el orden correcto en el que se construye la solución
Recientemente nos encontramos con este problema después de actualizar a Office 2010 desde Office 2007: tuvimos que cambiar manualmente las referencias de nuestro proyecto a la versión 14 de Office Interops que usamos en algunos proyectos.
Espero que eso nos ayude, nos llevó unos días descubrirlo.
También he visto este error en soluciones en las que tengo varios proyectos (generalmente proyectos de NetTiers donde actualicé uno o más de los subproyectos para apuntar al framework 4.0). Puede ser problemático eliminarlo. Sin embargo, a menudo se puede resolver solucionando primero todos los demás errores en los subproyectos (p. Ej., Cualquier referencia faltante), reconstruyendo individualmente esos subproyectos, y luego eliminando / volviendo a agregar cualquier referencia a esos subproyectos en Visual Studio. Personalmente, tuve poca suerte para resolver este error limpiando solo la solución.
Tenemos ese problema con bastante frecuencia, pero solo con referencias a proyectos C ++ / CLI de proyectos C #. Obviamente es un error en VS que Microsoft decidió no corregir porque es "demasiado complejo" y prometieron una revisión del sistema de compilación C ++ que ahora está destinado a VS 2010.
Eso fue hace un tiempo, y tal vez la solución incluso entró en VS 2008, ya no la seguí. Sin embargo, nuestra solución típica fue
- cambiar configuración
- reiniciar Visual Studio
- construir solución
Terminé borrando mis referencias (las había agregado correctamente usando la pestaña de proyectos, y solían crear muy bien), editando a mano mis archivos .csproj y eliminando las entradas extrañas que no pertenecían, y estableciendo mis salidas para depuración y release, x86 y x64 y cualquier CPU a todos sea "/ bin" - Lo construí una vez, luego volví a agregar la referencia (nuevamente, usando la pestaña de proyectos), y todo comenzó a funcionar nuevamente para mí. No tuvo que reiniciar Visual Studio en absoluto.
Todo el mundo está en lo correcto ... prueba todo ... (en el orden de un poco a mucho tiempo desperdiciado)
- ¿Tienes un código malo? Arregla eso primero.
- Solución limpia y reiniciar Visual Studio
- Eliminar / Agregar referencias
- Verifique su orden de compilación con proyectos más grandes y verifique
- Reconstruir manualmente los subproyectos
- Copie manualmente dlls entre proyectos en carpetas bin asociadas
- Ve a tomar un café, juega un poco de pinball y vuelve mañana ... puedes pensar en otra cosa mientras tanto.
Tuve el mismo problema hoy.
Mi aplicación, una aplicación de Windows Forms, tuvo accidentalmente una referencia a sí misma. Extraño.
Una vez eliminado, el error desapareció.
La referencia se agregó cada vez que arrastré un control de usuario, ubicado en el proyecto de Windows Forms, a un formulario.
Tuve este problema y fue debido a un método no válido en la biblioteca ofensiva (dll) que no devolvió un valor, por ejemplo
public bool DoSomething()
{
//I never bothered putting code here....
}
Cuando commé esto, compilé todo :)
Tuve este problema y tardé mucho en descubrirlo. Surgió un problema cuando eliminé proyectos de la solución y los reemplacé por paquetes nuget.
La solución parecía estar bien, pero el archivo .csproj aún contenía esos proyectos varias veces como referencia.
Parece que VS no limpia ese archivo de manera apropiada. Todavía estaba haciendo referencia a los proyectos eliminados bajo el capó. ¡Cuando se eliminan manualmente las referencias del archivo csproj, todo vuelve a funcionar! wohoo
Tuve exactamente el mismo problema. Gran solución de estudio visual con más de 50 proyectos.
Todas las referencias fueron agregadas como proyectos. El orden de compilación del proyecto fue correcto (haga clic derecho en el proyecto y seleccione el orden de compilación).
Sin embargo, al construir algunos de los proyectos de mayor nivel, no se construyó el proyecto "raíz" del que dependían.
El problema fue que estos proyectos no fueron seleccionados para construir bajo la configuración actual (no sé cómo sucedió esto).
Para comprobar esto, seleccione "Configuration Manager" (menú Generar) e compruebe si los proyectos problemáticos están configurados para compilar.
Vuelva a abrir Visual Studio como administrador.
Yo tuve el mismo problema yo mismo.
Visual Studio 2013 solo me dijo que no podía hacer referencia a él y que no podía encontrar los metadatos. Cuando abrí mi solución (que tiene varios proyectos en ella), dijo que estaba usando proyectos inferiores a la versión marco de uno de mis proyectos.
Así que cambié todo a la versión 4.5 y funcionó de nuevo.
Yo tuve el mismo problema. La eliminación manual y la adición de dlls no ayudaron. ClassLibraries no compiló para todos los proyectos y faltaba en la carpeta ... / bin / Debug para el proyecto [porque limpié la solución por error]. Como la biblioteca de clases no compilaba eso significa que puede haber algunos errores en alguno de esos subproyectos .
Solución: como mis dlls estaban allí para la carpeta ... / bin / Release , intenté reconstruir en modo Release y encontré un error en una línea en uno de los subproyectos. La solución del error y la reconstrucción de la solución eliminaron el error de compilación.
Yo tuve el mismo problema. Noté que mi contexto de db (EF4) que estaba ubicado en el dll del proyecto no fue reconocido por alguna razón. Lo eliminé y creé otro en su lugar. y eso lo resolvió para mí.
Bueno, mi respuesta no es solo el resumen de todas las soluciones, sino que ofrece más que eso.
Sección 1):
En soluciones generales:
Tuve 4 errores de este tipo ("el archivo de metadatos no se pudo encontrar") junto con 1 error que decía "El archivo de origen no se pudo abrir (''Error no especificado'') ''.
Traté de deshacerme del error "no se pudo encontrar el archivo de metadatos". Para eso, leí muchas publicaciones, blogs, etc. y encontré que estas soluciones pueden ser efectivas (resumiéndolas aquí):
Reinicie VS e intente construir nuevamente.
Ve a ''Solution Explorer'' . Haga clic derecho en la solución. Ir a Propiedades Vaya a ''Administrador de configuración'' . Compruebe si las casillas de verificación debajo de ''Build'' están marcadas o no. Si alguno o todos están desactivados, compruébalos y vuelva a intentar compilar.
Si la (s) solución (es) anterior (es) no funcionan, siga la secuencia mencionada en el paso 2 anterior, e incluso si todas las casillas de verificación están marcadas, desmárquelas, vuelva a verificar e intente compilar de nuevo.
Orden de compilación y dependencias del proyecto:
Ve a ''Solution Explorer'' . Haga clic derecho en la solución. Vaya a ''Dependencias del proyecto ...'' . Verá 2 pestañas: ''Dependencias'' y ''Orden de compilación'' . Este orden de compilación es el que construye la solución. Compruebe las dependencias del proyecto y el orden de compilación para verificar si algún proyecto (digamos ''proyecto1'') que depende de otro (digamos ''proyecto2'') está tratando de compilar antes que ese (proyecto2). Esta podría ser la causa del error.
Compruebe la ruta del .dll perdido:
Compruebe la ruta del .dll faltante. Si la ruta contiene espacio o cualquier otro carácter de ruta no válida, quítelo e intente construir nuevamente.
Si esta es la causa, entonces ajusta el orden de compilación.
Sección 2):
Mi caso particular:
Intenté todos los pasos anteriores con varias permutaciones y combinaciones con reiniciar VS varias veces. Pero, no me ayudó.
Entonces, decidí deshacerme de otro error que me encontraba (''El archivo de origen no se pudo abrir ('' Error no especificado '')'').
Encontré un blog: http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539
Probé los pasos mencionados en ese blog y me deshice del error "El archivo de origen no se pudo abrir" ("error no especificado") y, sorprendentemente, me deshice de otros errores ("el archivo de metadatos no se pudo encontrar") también.
Seccion 3):
Moraleja de la historia:
Pruebe todas las soluciones mencionadas en la sección (1) anterior (y cualquier otra solución) para deshacerse del error. Si nada funciona, según el blog mencionado en la sección (2) anterior, elimine las entradas de todos los archivos fuente que ya no están presentes en el control de fuente y el sistema de archivos de su archivo .csproj .