686 votos

El archivo de metadatos '.dll' no se pudo encontrar

Estoy trabajando en un proyecto de WPF, C# 3.0, y obtengo este error:

Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem

Así es como hago referencia a mis usercontrols:

xmlns:vms="clr-namespace:VersionManagementSystem"

Sucede después de cada compilación fallida. La única manera en que puedo hacer que la solución se compile es comentar todos mis usercontrols y reconstruir el proyecto, y luego descomentar los usercontrols y todo está bien.

He revisado los órdenes de compilación y las configuraciones de las dependencias.

Como puedes ver, parece que se ha truncado la ruta absoluta del archivo DLL... He leído que hay un error con la longitud. ¿Es este un posible problema?

Es muy molesto tener que comentar, compilar, y descomentar, la compilación se está volviendo extremadamente tediosa.

850voto

Matt_Bro Puntos 1094

Acabo de tener el mismo problema. Visual Studio no está construyendo el proyecto que está siendo referenciado.

Instrucciones escritas:

  1. Haz clic derecho en la solución y selecciona Propiedades.
  2. Haz clic en Configuración en la parte izquierda.
  3. Asegúrate de que la casilla bajo "Compilar" para el proyecto que no puede encontrar esté marcada. Si ya está marcada, desmárcala, aplica y vuelve a marcar las casillas.
  4. (Opcional) Debes hacerlo tanto para los modos Release como para Debug en las propiedades de la solución.

Instrucciones con capturas de pantalla:

  • Dicen que una imagen vale más que mil palabras. Haz clic en el GIF para ampliarlo, y con suerte será fácil de seguir:

Instrucciones en Gif

221voto

corvuscorax Puntos 1759

Esto todavía puede ocurrir en versiones más recientes de Visual Studio (me acaba de pasar en Visual Studio 2013):

Otra cosa que puedes intentar es cerrar Visual Studio y borrar el archivo .suo que está al lado del archivo .sln. (Se generará de nuevo la próxima vez que Guardes todo (o salgas de Visual Studio)).

He tenido este problema al añadir nuevos proyectos a la solución en otra máquina y luego traer las revisiones, pero el archivo .suo puede estar corrupto en otros casos también y provocar comportamientos muy extraños en Visual Studio, así que borrarlo es una de las cosas que siempre intento.

Ten en cuenta que al borrar el archivo .suo se restablecerán los proyectos de inicio de la solución.

Más información sobre el archivo .suo está aquí.

99voto

Vikram Narkar Puntos 758

Bueno, mi respuesta no es solo el resumen de todas las soluciones, sino que ofrece algo más que eso.

Sección (1):

En soluciones generales:

Tuve cuatro errores de este tipo ('no se pudo encontrar el archivo de metadatos') junto con un error que decía 'No se pudo abrir el archivo de origen (‘Error no especificado ‘)’.

Intenté deshacerme del error de 'no se pudo encontrar el archivo de metadatos'. Para eso, leí muchos posts, blogs, etc. y encontré que estas soluciones podrían ser efectivas (resumiéndolas aquí):

  1. Reinicia Visual Studio e intenta compilar de nuevo.

  2. Ve a 'Explorador de soluciones'. Haz clic derecho en la solución. Ve a Propiedades. Ve a 'Administrador de configuración'. Comprueba si las casillas bajo 'Construir' están marcadas o no. Si alguna o todas están desmarcadas, entonces márcalas e intenta compilar de nuevo.

  3. Si la(s) solución(es) anterior(es) no funcionan, sigue la secuencia mencionada en el paso 2 anterior, y aunque todas las casillas estén marcadas, desmárcalas, vuélvelas a marcar e intenta compilar de nuevo.

  4. Orden de compilación y dependencias del proyecto:

    Ve a 'Explorador de soluciones'. Haz clic derecho en la solución. Ve a 'Dependencias del proyecto...'. Verás dos pestañas: 'Dependencias' y 'Orden de compilación'. Este orden de compilación es en el que se construye la solución. Revisa las dependencias del proyecto y el orden de construcción para verificar si algún proyecto (digamos 'proyecto1') que depende de otro (digamos 'proyecto2') está intentando construirse antes que ese (proyecto2). Esto podría ser la causa del error.

  5. Comprueba la ruta del archivo .dll que falta:

    Verifica la ruta del archivo .dll que falta. Si la ruta contiene espacios u algún otro carácter de ruta no válido, elimínalo e intenta compilar de nuevo.

    Si esta es la causa, entonces ajusta el orden de construcción.


Sección (2):

Mi caso particular:

Intenté todos los pasos anteriores con varias permutaciones y combinaciones reiniciando Visual Studio algunas veces. Pero, no me ayudó.

Así que decidí deshacerme de otro error con el que me encontré ('No se pudo abrir el archivo de origen (‘Error no especificado ‘)').

Me encontré con un post de blog: Error de TFS–No se pudo abrir el archivo de origen (‘Error no especificado ‘)

Probé los pasos mencionados en ese post de blog, y me deshice del error 'No se pudo abrir el archivo de origen (‘Error no especificado ‘)' y sorprendentemente también me deshice de otros errores ('no se pudo encontrar el archivo de metadatos').


Sección (3):

Moral de la historia:

Intenta todas las soluciones mencionadas en la sección (1) anterior (y cualquier otra solución) para deshacerte del error. Si nada funciona, según el blog mencionado en la sección (2) anterior, borra las entradas de todos los archivos fuente que ya no estén presentes en el control de código fuente y en el sistema de archivos de tu archivo .csproj.

10voto

Chris Moschini Puntos 7278

Para mí, estaba tratando de encontrar una DLL en una ruta que solía contener el Proyecto, pero lo habíamos movido a un nuevo directorio. La Solución tenía la ruta correcta al Proyecto, pero Visual Studio de alguna manera seguía buscando en la ubicación anterior.

Solución: Renombrar cada Proyecto con problemas - solo agregar un caracter o lo que sea - luego renombrarlo de vuelta a su nombre original.

Esto debe restablecer alguna especie de caché global en Visual Studio, porque esto soluciona tanto este problema como varios similares, mientras que cosas como Limpiar no lo hacen.

8voto

Para mí, los siguientes pasos funcionaron:

  • Encuentra el proyecto que no se está compilando
  • Elimina/agrega referencias a proyectos dentro de la solución

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X