2008-11-30 15 views
96

Cada vez que inicio Visual Studio 2008, la primera vez que intento ejecutar el proyecto, aparece el error CS0006 El archivo de metadatos ... no se pudo encontrar. Si hago una reconstrucción de la solución completa, funciona.Archivo de metadatos ... no se pudo encontrar el error al generar proyectos

Parte de la información acerca de la solución:

  • estoy construyendo en modo de depuración y Visual Studio por no da derecho a reclamación encontrar DLL: s en la carpeta de destino.

  • Los proyectos de los que Visual Studio se queja son utilizados por muchos otros proyectos en la solución.

  • He cambiado la ruta de salida predeterminada de todos los proyectos a ...... \ build \ debug \ ProjectName y ...... \ build \ release \ ProjectName respectivamente. (Solo para obtener todos los archivos de compilación en un directorio)

  • Tengo el mismo problema con otra solución.

  • La solución se creó desde cero.

  • Hay 9 proyectos en la solución. Una WPF y 8 bibliotecas de clase usando dotnet 3.5.

¿Alguna idea sobre qué está causando este problema?

+0

http://stackoverflow.com/a/17723774/1724702 –

Respuesta

132

tuve el problema similar donde "metadata no se pudo encontrar". en la propiedad de la solución, asegúrese de que la casilla de verificación "compilar" esté marcada en Build/Configuration Manager para cada proyecto.

+15

Para cualquier persona que no pueda encontrarlo, Build/Configuration Manager se refiere al menú Generar -> elemento del menú Administrador de configuración. –

+11

Todos mis cuadros ya están marcados, así que esto no me sirve. –

+4

Acabo de toparme con este problema, el motivo era otro error que causaba que el proyecto al que se hace referencia no se construyera correctamente. Esto fue en un proceso de pago limpio, por lo que no existían archivos dll de compilaciones previas exitosas. Repare los errores y asegúrese de que un proyecto referenciado se cree correctamente. – Moulde

7

Tuve este problema, no estoy seguro si esto ayudará pero el mío fue causado por tener dos versiones diferentes del mismo proyecto referenciadas por dos soluciones diferentes. Cuando construí la solución con la referencia al proyecto correcto primero, la segunda solución se compilaría bien, sin embargo, si limpiaba la primera solución y traté de construir la segunda solución, fallaría con estos mensajes de error de referencia dll.

La solución para mí fue descubrir que tenía dos proyectos con el mismo nombre que se habían duplicado accidentalmente y eliminar la referencia al antiguo proyecto incorrecto y agregar una referencia al nuevo.

En cualquier caso, parece que estos mensajes son una pizca de misterio, verificaría el resultado de su compilación y encontraría el primer proyecto que falla en la construcción y verificaría cuidadosamente las referencias en ese proyecto.

+1

1 para la nota con respecto a la inexactitud de estos mensajes. Esto surgió para mí porque las rutas a los ensamblados referenciados en una solución se rompieron. Leerlos y volver a compilar resolvió el problema. –

0

Lo mismo sucedió. Tengo varias soluciones que hacen referencia a los mismos proyectos de biblioteca (.net 3.5). Me di cuenta de que cuando se creaba una configuración de depuración/normal y otra que usaba otra directiva de compilación (modo sqlite/local), esto ocurría. Simplemente haga que ambos proyectos se desarrollen con las mismas directivas y debería estar bien.

26

Esto generalmente es causado por un proyecto al que se hace referencia en una solución diferente a la que arroja el error. Si limpia la otra solución o ramifica el código, lo más probable es que vea este error. La solución es desplazarse hacia abajo en su lista de errores de "metadatos no encontrados" y observar las referencias a los proyectos. 9/10 veces, verá una referencia incompleta a un proyecto que no está en esta solución. Agregue los proyectos para corregir los errores de referencia y reconstruir. Eso debería arreglarlo.

(I acabo de encontrar con esto hoy, y tienen en el pasado, y esto ha trabajado siempre)

+0

Solo los proyectos que están en mi solución se quejan. –

2

La manera que tengo alrededor de esto en el pasado en VS2005, así como hasta ahora en el VS2008 es asegúrese de que todas las dependencias sean correctas y que las referencias apunten a los proyectos, no a los dlls. Luego revise y construya manualmente cada proyecto en orden de dependencia. Una vez que el último compila puede ejecutar una compilación de solución completa y está bien.

Esta respuesta es para referencia futura para otros ya que sé que la pregunta tiene más de 15 meses.

Saludos

0

Si tienes añadir un nuevo proyecto a la solución, comprobar que esto está en la lista de construcción (véase el Administrador de configuración )

0

me quedé atrapado con el tema ahorrar cuando quería para incluir un archivo dll generado por Matlab. Y finalmente lo resolví copiando un archivo .ctf, que significa certificado supongo, y un .netmodule, que es necesario para el correcto funcionamiento del .dll, junto con el archivo .dll. ¡Y eso realmente funcionó! Entonces, mi sugerencia es verificar si el .dll necesita algún otro archivo para llevarse bien.

2

Tengo un par de puntos que me gustaría hacer.

Si confía en el archivo de solución como archivo de compilación en MSBuild, asegúrese de agregar proyectos al archivo de solución en el orden en que desea que se generen, es decir, según el orden de dependencia mutuo de los proyectos . Esto se vuelve muy importante si tiene proyectos en la solución de los que dependen otros proyectos, pero las referencias se han agregado como "Referencias" en lugar de como "Referencias del proyecto".

Debe evitar eso como la peste, pero en caso de que necesite hacerlo, al menos asegúrese de que los proyectos dependientes aparezcan antes en el archivo de la solución.

Debe tener en cuenta que la forma en que Visual Studio genera el orden de compilación no es exactamente igual a la forma en que lo hace MSBuild. Esto se debe a que MSBuild depende principalmente del archivo de proyecto para indicarle cuáles son las dependencias, mientras que Visual Studio también puede guardarlas en el archivo de solución. Por lo tanto, a veces puede ver situaciones en las que Visual Studio construye la solución perfectamente, pero MSBuild simplemente no puede hacerlo.

He tenido un par de casos en los que tuve que modificar manualmente el orden en que los proyectos aparecen en el archivo de solución, así como el orden en que se enumeraron los proyectos en el elemento ProjectReferences en un proyecto de sitio web en archivo de solución.

Espero que la información anterior ayude.

0

Windows 7 Ultimate 32 Visual Studio 2008 SQL Server v2005

que estaba recibiendo el mismo error. Y decidí eliminar y volver a agregar las referencias del proyecto. No pude volver a agregarlos porque la referencia de la base de datos en cada uno de los proyectos referenciados estaba en blanco.

Una vez que reinicié la referencia de la base de datos a la configuración correcta, pude construir sin ningún problema. Además, este fue mi primer intento de reconstruir este proyecto después de haber ramificado el código fuente en VSS.

buena suerte

2

Si utiliza contextos LinqToSql datos, por ejemplo, y el archivo .designer.cs no se encuentra, obtendrá el archivo de metadatos no se pudo encontrar el error.

Volver a crear el archivo designer.cs es fácil.

Abre el dbml con la vista xml. Agregue una línea en blanco, luego quítela y luego guárdela. Eso debería regenerar su archivo designer.cs.

En algunas circunstancias, si tiene código dentro del código subyacente de su contexto de datos, este trabajo no funcionará. En este caso, saque el código del código y guárdelo en el bloc de notas o algo así. Haz el truco de agregar y luego quitar una línea del DC y guardar. Ahora devuelve el código y guarda.

1

También experimenté este error y la causa fue que el Proyecto se está refiriendo a sí mismo. No tengo idea de cómo sucedió, pero acabo de eliminar la referencia y voila

6

Otra cosa para verificar es la longitud de la ruta ... que provoca también el archivo de metadatos no encontrado y los errores de compilación ... Acabo de renombrar mis carpetas para abreviar caminos y voilá, clases que no fueron reconocidas y se mantuvieron en negro, se volvieron azules con solo cambiar el nombre de la carpeta.

5

Para mí tuve un proyecto al que se hizo referencia en otro proyecto. No mostró que estaba roto en la lista de referencias en la ventana del explorador de soluciones, pero lo eliminé y lo reacomodé de todos modos. Se construye muy bien ahora!

+0

De hecho, eliminé todas las referencias y las agregué nuevamente. –

2

Tengo un problema similar cada vez que actualizo el proyecto desde SVN.
Otra solución para ASP.NET:

  1. Cierre el IDE.
  2. Eliminar los archivos en C:\WINDOWS\microsoft.net\framework\v…\Temporary ASP.NET File\.
3

Realicé todos estos pasos en VS2012, pero me encontré con este problema cuando construí la solución como un todo (los proyectos individuales se desarrollaron perfectamente sin errores).

Descubrí que si hace clic con el botón derecho en su Solución en el Explorador de soluciones y selecciona "Crear orden", puede ver el orden que VS está utilizando para reconstruir su solución. Es probable que esté fuera de control.

Puede corregir el orden de construcción haciendo clic en la pestaña Dependencias y seleccionando los proyectos que dependen de otros proyectos en la solución y comprobando los proyectos de los que dependen. Una vez que hagas clic en Aceptar y hagas una reconstrucción de la solución, deberías estar listo para continuar.

1

En mi caso, descubrí que una de las soluciones estaba haciendo referencia a algo que no estaba allí en la computadora (VBIDE). Una vez que eliminé la referencia ofensiva, el resto de los proyectos se crearon correctamente. Espero que ayude a alguien.

Y en otra situación, moví un código de un proyecto a otro, y ese fragmento de código hacía referencia a Json.net. Añadí manualmente una referencia a Json.net, pero eso hizo que el problema surgiera. Lo resolví instalando Json.net a través de NuGet y eso hizo que el problema desapareciera. Espero que ayude a alguien.

0

Tuve este error que fue causado por una de las dependencias de mi proyecto donde el nombre del ensamblado había sido cambiado en el proyecto, pero la referencia no se actualizó. Por lo tanto, actualizar la referencia o cambiar el nombre del ensamblaje lo arreglará.

0

EE - En mi caso, el problema estaba en el proyecto que tiene el marco Entity, abra el diagrama arrastre cualquier tabla 2 cm :) y guarde, el VS actualizará todos sus enlaces al DB ... construya este proyectos y construir la solución, Buildssss.

0

Lo único que me solucionó (porque no estoy ejecutando VS2010 en una cuenta de administrador) es mover manualmente la variable de entorno VS120COMNTOOLS de Variables del sistema a Variables del usuario.

1

primer lugar, asegúrese de que la casilla de verificación "construir" está marcado en Build -> Administrador de configuración para cada proyecto.

En caso, si ya tiene todos los proyectos seleccionados en Build -> Configuration Manager menu, y reiniciando VS truco no funciona para usted tampoco tiene que encontrar la referencia del archivo (podría ser dll o cs) en su proyecto y eliminar esas referencias manualmente. Esos archivo (s)/referencia (s) se deben mostrar con el icono amarillo. El error definitivamente lo guía a usted en qué proyecto de solución debe estar interesado.

La razón de este error se debe a que haya borrado el archivo (s) de forma manual en Windows Explorer y VS no ha actualizado la referencia y tratando de localizar el archivo que no existe más!

0

Eliminación de las entradas de todos los archivos de origen que ya no están presentes en el control de la fuente y el sistema de archivos de su archivo .csproj trabajó para mí.


enfoque detallado:

Bueno, mi siguiente respuesta no es sólo el resumen de todas las soluciones, pero ofrece más que eso.

Sección (1):

En soluciones generales:

que tenía 4 errores de este tipo ('archivo de metadatos no se pudo encontrar') junto con decir 1 error 'Archivo de origen No se pudo abrir ('Error no especificado') '.

Me trataron de deshacerse de ‘archivo de metadatos no se pudo encontrar’ error. Por eso, he leído muchos mensajes, blogs, etc y encontré estas soluciones pueden ser eficaces (resumirlas aquí):

  1. Reiniciar VS y tratar de construir de nuevo.

  2. Ir a 'Solution Explorer'. Haga clic derecho en la solución. Vaya a Propiedades. Ir a 'Administrador de configuración'. Comprobar si las casillas de verificación bajo 'Construir' se comprueban o no. Si alguno o todos están desactivados, compruébalos y vuelva a intentar compilar.

  3. 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.

  4. Orden de composición y sus dependencias del proyecto:

    Ir a 'Explorador de soluciones'. Haga clic derecho en la solución. Vaya a 'Dependencias del proyecto ...'. Verá 2 pestañas: 'Dependencias' y 'Orden de fabricació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.

  5. Comprobar la trayectoria de la falta .dll:

    comprobar la ruta de la falta .dll. 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 ajuste el orden de compilación.


Sección (2):

Mi caso particular:

Probé todos los pasos anteriores con diversas permutaciones y combinaciones con reiniciar VS par de 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 ')').

me encontré con 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 libró del error 'archivo de origen no se pudo abrir (' Error no especificado ')' y sorprendentemente me se deshizo de otros errores ('archivo de metadatos no se pudo encontrar') también.


Sección (3):

Moraleja de la historia:

probar todas las soluciones que se han mencionado en el apartado (1) anterior (y otras soluciones) para deshacerse de el 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.


Cuestiones relacionadas