Estoy trabajando en un proyecto WPF, C # 3.0, y aparece 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 controles de usuario:
xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>
Sucede después de cada compilación fallida. La única forma en que puedo obtener la solución para compilar es comentar todos mis controles de usuario y reconstruir el proyecto, y luego descomento los controles de usuario y todo está bien.
He verificado las órdenes de compilación y las configuraciones de dependencias.
Como puede ver, parece haber 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 y tener que comentar, construir y descomentar, la construcción se está volviendo extremadamente agotadora.
Respuestas:
Acabo de tener el mismo problema. Visual Studio no está creando el proyecto al que se hace referencia.
Instrucciones escritas:
Instrucciones de captura de pantalla:
fuente
Esto todavía puede suceder en las versiones más nuevas de Visual Studio (acabo de hacer que ocurra en Visual Studio 2013):
Otra cosa para intentar es cerrar Visual Studio y eliminar el
.suo
archivo que está al lado del.sln
archivo. (Se volverá a generar la próxima vez queSave all
(o salga de Visual Studio)).He tenido este problema al agregar nuevos proyectos a la solución en otra máquina y luego incorporar las revisiones, pero el
.suo
archivo también puede dañarse en otros casos y dar lugar a un comportamiento muy extraño de Visual Studio, por lo que eliminarlo es una de las cosas que siempre intento.Tenga en cuenta que al eliminar el
.suo
archivo se restablecerán los proyectos de inicio de la solución.Más sobre el
.suo
archivo está aquí .fuente
.suo
archivos están ocultos. Por lo tanto, deberá configurar su explorador para mostrar archivos ocultos..suo
archivo está oculto y se encuentra dentro de un.vs
directorio oculto al lado de.sln
. por ejemplo: si sec:\foo\mysolution.sln
busca el archivo de soluciónc:\foo\mysolution\.vs\mysolution\v14\.suo
.vs
carpeta oculta que también eliminó el.suo
archivo. Reabrí la solución, arreglé un error no relacionado más y el problema se resolvió.La respuesta sugerida no funcionó para mí. El error es un señuelo para otro problema.
Descubrí que estaba apuntando a una versión ligeramente diferente de .NET y esto fue marcado como una advertencia por el compilador, pero estaba causando que fallara la construcción. Esto debería haberse marcado como un error y no como una advertencia.
fuente
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 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 'no se pudo encontrar el archivo de metadatos'. Para eso, leí muchas publicaciones, blogs, etc. y descubrí que estas soluciones pueden ser efectivas (resumiéndolos aquí)
Reinicie Visual Studio e intente compilar nuevamente.
Vaya a 'Explorador de soluciones' . Haga clic derecho en Solución. Ir a propiedades . Vaya a 'Administrador de configuración' . Compruebe si las casillas de verificación en 'Compilar' están marcadas o no. Si alguno o todos están desmarcados, verifíquelos e intente construir de nuevo.
Si las soluciones anteriores no funcionan, siga la secuencia mencionada en el paso 2 anterior, e incluso si todas las casillas de verificación están marcadas, desactívelas, verifique nuevamente e intente construir nuevamente.
Orden de construcción y dependencias del proyecto:
Vaya a 'Explorador de soluciones' . Haga clic derecho en Solución. Vaya a 'Dependencias del proyecto ...' . Verá dos pestañas: 'Dependencias' y 'Orden de compilación' . Este orden de compilación es aquel en el que se construye la solución. Verifique las dependencias del proyecto y el orden de compilación para verificar si algún proyecto (por ejemplo, 'proyecto1') que depende de otro (por ejemplo, 'proyecto2') está intentando compilarse antes de ese (proyecto2). Esta podría ser la causa del error.
Verifique la ruta del archivo .dll faltante:
Verifique la ruta del archivo .dll faltante. Si la ruta contiene espacio o cualquier otro carácter de ruta no válido, elimínelo e intente construir nuevamente.
Si esta es la causa, entonces ajuste el orden de construcción.
Sección 2):
Mi caso particular:
Intenté todos los pasos anteriores con varias permutaciones y combinaciones reiniciando Visual Studio varias veces. Pero no me ayudó.
Entonces, decidí deshacerme de otro error que estaba encontrando ('El archivo de origen no se pudo abrir (' Error no especificado ')').
Me encontré con una publicación de blog: Error de TFS : el archivo de origen no se pudo abrir ('Error no especificado')
Intenté los pasos mencionados en esa publicación de blog, y me deshice del error 'No se pudo abrir el archivo fuente (' Error no especificado ')' y sorprendentemente me deshice de otros errores ('no se pudo encontrar el archivo de metadatos') como bien.
Seccion 3):
Moraleja de la historia:
Pruebe todas las soluciones como se menciona 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 de origen que ya no están presentes en el control de origen y el sistema de archivos de su archivo .csproj .
fuente
.NET v4.5
proyecto a.NET v.4
.En mi caso, fue causado por una versión de .NET Framework que no coincide.
Un proyecto fue 3.5 y el otro proyecto de referencia 4.6.1.
fuente
¡Cerrar y reabrir Visual Studio 2013 funcionó para mí!
fuente
Bueno, nada en las respuestas anteriores me funcionó, así que me hizo pensar en por qué estoy haciendo clic y esperando cuando, como desarrolladores, realmente deberíamos tratar de entender lo que está sucediendo aquí.
Me pareció obvio que esta referencia incorrecta del archivo de metadatos debe mantenerse en algún lugar.
Una búsqueda rápida del archivo .csproj mostró las líneas de culpabilidad. Tenía una sección llamada <itemGroup> que parecía estar colgada en la antigua ruta de archivo incorrecta.
Entonces, una solución simple realmente:
Asegúrese de hacer una copia de seguridad de su antiguo .csproj antes de tocar el violín .
fuente
También me encontré con este problema. En primer lugar, debe crear manualmente su proyecto DLL, haciendo clic con el botón derecho en Crear. Entonces funcionará.
fuente
Metadata file ...proj1.dll could not be found
¡ me lo da !En mi caso, tengo mi directorio instalado de manera errónea.
Si su ruta de solución es algo así como "Mi proyecto% 2c Muy popular% 2c Prueba de unidad% 2c Software y hardware.zip", no puede resolver el archivo de metadatos, quizás debamos evitar algunas palabras no válidas como% 2c.
Cambiar el nombre de la ruta al nombre normal resolvió mi problema.
fuente
Obtuve el mismo error "No se pudo encontrar el archivo de metadatos '.dll'", e intenté varias cosas descritas anteriormente, pero la razón del error fue que estaba haciendo referencia a un archivo DLL de terceros que apuntaba a una versión .NET más alta que mi proyecto se dirige a la versión .NET. Entonces la solución fue cambiar el marco objetivo de mi proyecto.
fuente
Visual Studio 2019 esto funcionó para mí:
.vs
carpeta ocultafuente
Para mí, estaba tratando de encontrar un archivo DLL en una ruta que solía contener el Proyecto, pero lo movimos 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: cambie el nombre de cada proyecto problemático, solo agregue un carácter o lo que sea, luego cambie el nombre a su nombre original.
Esto debe restablecer algún tipo de caché global de algún tipo en Visual Studio, ya que esto soluciona este problema y varios similares, mientras que cosas como Limpiar no lo hacen.
fuente
Agregué un nuevo proyecto a mi solución y comencé a obtener esto.
¿La razón? El proyecto que traje estaba dirigido a un marco .NET diferente (4.6 y mis otros dos eran 4.5.2).
fuente
Para mí ocurrió cuando incluí un nuevo proyecto en una solución.
Visual Studio selecciona automáticamente .NET Framework 4.5.
Cambié a la versión .NET 4.5.2 como las otras bibliotecas, y funcionó.
fuente
Para mí, los siguientes pasos funcionaron:
fuente
También me estaba sacando el pelo con este problema, pero después de probar las respuestas anteriores, lo único que funcionó para mí fue abrir cada proyecto en mi solución 1 por 1 y construirlos individualmente.
Luego cerré Visual Studio 2013, volví a abrir mi solución y se compiló bien.
Es extraño, porque si hice clic en cada proyecto en mi Explorador de soluciones e intenté construirlos de esa manera, todos fallaron. Tuve que abrirlos solos en sus propias soluciones.
fuente
Parece que este tipo de errores están relacionados con el hecho de que Visual Studio no proporciona información correcta sobre un error. El desarrollador ni siquiera entiende la razón de la compilación fallida. Puede ser un error de sintaxis u otra cosa. En común, para resolver estos problemas, debe encontrar la raíz del problema (por ejemplo, mire el registro de compilación).
En mi caso, el problema era de hecho que la
Error List
ventana no mostraba ningún error. Pero realmente hubo errores de sintaxis; Encontré estos errores en laOutput
ventana, y después de solucionarlos, el problema se resolvió.fuente
Mi instancia del problema fue causada por un proyecto común que tenía un nombre de clase duplicado (bajo un nombre de archivo diferente). Es extraño que Visual Studio no pudiera detectar eso y, en cambio, solo explotó el proceso de compilación.
fuente
Tengo este problema en Visual Studio 2012 en una solución que tenía muchos proyectos. Reconstruir cada proyecto en la solución manualmente en el mismo orden que el Orden de compilación del proyecto (clic derecho y reconstruir en el Explorador de soluciones) lo arregló para mí.
Finalmente llegué a uno que me dio un error de compilación. Solucioné el error y la solución se construiría correctamente después de eso.
fuente
En mi caso, el problema era que había eliminado manualmente un archivo de no compilación que estaba marcado como "perdido". Una vez que eliminé la referencia al archivo que ahora falta y volví a compilar, todo estuvo bien.
fuente
Si tiene un espacio en el nombre de su solución, esto también causará el problema. Si elimina el espacio del nombre de su solución, la ruta no contiene% 20 resolverá esto.
fuente
Volviendo a esto unos años más tarde, es muy probable que este problema esté relacionado con el límite máximo de ruta de Windows:
Nombrar archivos, rutas y espacios de nombres , limitación de longitud máxima de ruta
fuente
En mi caso, el problema fue causado por un simple error de compilación,
eso, por cualquier motivo, no apareció en la ventana de error.
Debido a eso, el sistema de compilación de Visual Studio pareció perder el error e intentó construir proyectos dependientes, lo que a su vez falló con el molesto mensaje de metadatos.
La recomendación es, por estúpida que parezca:
Primero mira tu ventana de salida !
Me tomó media hora antes de que esta idea me golpeara ...
fuente
Yo también tuve el mismo error. Se esconde como en el siguiente camino. La ruta a la que me referí para el archivo DLL es como "D: \ Assemblies Folder \ Assembly1.dll".
Pero la ruta original a la que se refería el ensamblado era "D: \ Assemblies% 20Folder \ Assembly1.dll".
Debido a esta variación de nombre de ruta, el ensamblado no se pudo recuperar de su ruta original y, por lo tanto, arroja el error "Metadatos no encontrados".
La solución está en la pregunta de desbordamiento de pila ¿ Cómo reemplazo todos los espacios con% 20 en C #? .
fuente
Me enfrenté al mismo problema. En mi caso, hice referencia a un proyecto de biblioteca de clases con una versión .Net más alta que mi proyecto y VS no pudo construir el proyecto y generó el mismo error que publicó.
Simplemente configuré la versión .Net de mi proyecto de biblioteca de clases (la que había roto la compilación) idéntica a la versión .Net del proyecto referenciado y el problema resuelto.
fuente
Simplemente señalando lo obvio: si no tiene habilitado "Mostrar ventana de salida cuando se inicia la compilación", asegúrese de notar si su compilación falla (¡pequeño error de "compilación fallida" en la parte inferior izquierda)!
fuente
Tuve este error cuando intentaba publicar una aplicación web. Resultó que una de las propiedades de una clase estaba envuelta en
pero el uso de la propiedad no fue. La publicación se realizó en la configuración de lanzamiento sin el
DEBUG
símbolo, obviamente.fuente
Según el mensaje de error, no creo que la ruta del archivo se esté truncando. Parece ser simplemente incorrecto. Si estoy leyendo el mensaje correctamente, parece estar buscando el archivo DLL en ...
Este no es un camino válido. ¿Es posible que tenga una definición de macro en el proceso de compilación establecida en un valor no válido?
fuente
Tuve este problema porque
.nuget\NuGet.exe
no estaba incluido en mi repositorio. Aunque habilitéDownloadNuGetExe
en NuGet.targets, informó un error de proxy al intentar descargarlo. Esto hizo que el resto de las compilaciones del proyecto fallara.fuente
Este error se puede mostrar si usa ensamblajes falsos. Eliminar las falsificaciones conduce a una construcción exitosa del proyecto.
fuente