Se ha devuelto el error HRESULT E_FAIL de una llamada a un componente COM VS2012 durante la depuración

97

Tengo un problema al depurar un proyecto migrado de Visual Studio 2010 a 2012. Cada vez que voy a depurarlo aparece el mensaje de error:

"Se ha devuelto el error HRESULT E_FAIL de una llamada a un componente COM".

Compilar y ejecutar la aplicación en un servidor IIS local funciona bien, simplemente no se puede depurar.

El otro cambio además de pasar a VS2012 es que ahora estoy usando Team Foundation Server para el control de fuente y el seguimiento de problemas, pero no puedo ver cómo eso lo afectaría.

Puedo reducirlo a lo siguiente

  • El archivo del proyecto: se ha migrado de VS 2003 como un proyecto de sitio web y se ha cortado y cambiado las diferentes versiones.
  • Biblioteca de tiempo de ejecución de Crystal Report / alguna otra biblioteca

¿Alguien con alguna idea?

Mate
fuente
¿Puede publicar su archivo de registro de actualización? También la estructura del proyecto que tiene en solución y la imagen del error.
Nexus 23,
¿Alguna vez lograste resolver esto? ¡Me estoy encontrando exactamente con el mismo problema y me estoy tirando de los pelos!
Chris Phillips
No, tuve que seguir usando VS2010: el proyecto se está reescribiendo, por lo que el desarrollo actual casi se ha detenido ...
Matt
Una respuesta recientemente eliminada a continuación sugirió que una actualización de Windows solucionaría esto.
halfer
Hola, aceptó una respuesta, pero la solución de @ TimHall podría ser más fácil y menos intrusiva. ¿Lo has probado?
Spencer

Respuestas:

57

Eliminé los archivos csproj.user y funcionó para mí.

En algunos otros casos, para corregir este error, voy a la pestaña Web en las propiedades del proyecto y selecciono "Usar Visual Studio Development Server" y "Autoasignar puerto". Después de eso, necesito reconstruir el proyecto y reiniciar VS

Alejandro Haro
fuente
Bingo, no puedo creer que esto haya causado el problema, gracias por publicar esto.
Matt
7
Una pequeña aclaración a partir de MVS2017. Vaya a Herramientas -> Opciones ... luego Proyectos y soluciones -> Proyectos web, luego desmarque "Mostrar automáticamente las conexiones de datos desde web.config en el Explorador de servidores ..." y luego vuelva a compilar. Saludos desde 2019, funciona a las mil maravillas!
Wormer
Probé este Wormer, pero de alguna manera no funcionó para mí.
Abhijeet Sinha
Neithre quitó csproj.user ayudó
Abhijeet Sinha
74

He estado recibiendo mucho esto últimamente. He tenido que crear un nuevo archivo y mover el código al nuevo archivo para solucionarlo.

Lo arreglé eliminando el archivo suo de la solución (por lo que puedo decir, solo almacena información como qué archivos están abiertos en el IDE y esas cosas, y eliminarlo no hace ningún daño real).

Mi archivo estaba aparentemente dañado. (El IDE no recordaba qué archivos estaban abiertos al reiniciar. Tenía un tamaño de 1,7 MB, lo que parece grande, incluso para mi solución de 40 proyectos, que rara vez tiene más de 50 archivos abiertos a la vez).

Editar: Recientemente tuve que hacer esto en VS2017, pero por otra razón, estaba tardando más en compilarse y tardó más de 5 minutos en detener una sesión de depuración, eliminar ese molesto archivo suo lo solucionó de inmediato, ahora en cualquier momento VS actúa de manera extraña al eliminar SUO es mi primer puerto de escala.

Tim Hall
fuente
1
Las soluciones funcionaron para mí (VS 2013 - Aplicación
Winforms
Probé todo, pero esta es la única solución que funcionó para mí ... gracias @Tim Hall
Malik Khalil
¡Gracias! Esto me ayudó
rhedin
También funciona en VS 2017.
Ctwheels
4
Gracias, eliminó el .vsárbol de directorios y solucionó el problema de compilación en VS2017 con el mismo error.
Pavel Machyniak
65

Tuve el mismo problema con un proyecto de c ++ en Visual Studio 2019.

La siguiente solución funcionó para mí:

  • Cierre Visual Studio.
  • Vaya a la carpeta raíz del proyecto y elimine el directorio .vs.
  • Inicie Visual Studio y abra la solución.
  • La construcción debería funcionar ahora.
datoml
fuente
3
Trabajó para mi. No olvide cerrar VS después de eliminar el directorio .vs. El directorio .vs está oculto, por cierto.
Hari
También C ++ en VS 2019 desde la carpeta de compilación Cmake OpenCV. eliminó (oculta) la carpeta .vs del directorio raíz y funcionó. ¡USTEDES son los verdaderos superhéroes!
Todd-ECU
10

Esto resolvió mi problema:

Inicio -> Ejecutar -> regsvr32 %SystemRoot%\System32\msxml3.dll

Inicio -> Ejecutar -> regsvr32 %SystemRoot%\SysWOW64\msxml3.dll

Antes de esto, probé la solución anterior de Simon, ¡pero no funcionó para mí!

¡Quizás la combinación de estas dos soluciones funcionó!

Besnik Kastrati
fuente
2
Esto funcionó para mí también. No sé cómo VS llegó a este estado, pero esto me sacó de él. Recibí este error al abrir una solución
the_mandrill
6

Lamento revivir un hilo muerto, pero resolví esto en VS2017 eliminando el caché de la plantilla del proyecto y las carpetas del caché de la plantilla del elemento en

%localappdata%\Microsoft\VisualStudio\[BUILD]

Luego, restableciendo la configuración de Visual Studio a través de

Tools>Import and export settings>reset all settings

También he oído que desactivar "Carga de solución ligera para todos los proyectos" puede ayudar.

Ricky Divjakovski
fuente
1
esto también funcionó para mí. Acabo de cambiar el nombre de todas las carpetas que tenían Visual Studios y VS volvió a crear todas las carpetas, y los errores que tenía desaparecieron. ¡Gracias!
TravisWhidden
"Herramientas> Importar y exportar configuraciones> restablecer todas las configuraciones" Me funcionó, tyvm.
Jhollman
5

Quería agregar que encontré este error al abrir el archivo del diseñador en la aplicación WinForms. Mi problema fue que una de las referencias en el proyecto se refería a sí mismo. Al parecer, esto puede suceder como se menciona aquí.

https://social.msdn.microsoft.com/Forums/office/en-US/00aede04-d8cd-4475-8114-4b4792261052/winforms-designer-error-hresult-efail-has-been-returned-from-a- llamada-a-un-componente-com

Eliminé la referencia y está funcionando bien.

Sugat
fuente
1
Esta no es una respuesta de solo enlace. Describe una posible solución y proporciona el enlace como referencia.
Robert Columbia
1
Esto también funcionó para mí. Mi archivo .proj tenía esta entrada de referencia mágica para sí mismo que apareció desde mi última confirmación de git. HintPath apuntó a la carpeta obj \ Debug del proyecto. Eliminé esta entrada y la reconstruí, ahora todos mis diseñadores están trabajando.
Karl
1
Esto también funcionó para mí. El proyecto tenía una referencia a sí mismo para un UserControl. Tuve que eliminar la referencia, limpiar el proyecto y luego reconstruir. ¡WinForm ahora se abre!
Doug Knudsen
4

Quizás esta página ayude:

Escenario dos: Microsoft Visual Studio 2010 IDE se bloquea al crear O depurar un proyecto de aplicación web. Este error anterior se produce debido a la caché de Visual Studio 2010 dañada. Para resolver el problema, simplemente elimine la caché del proyecto de la siguiente ubicación:

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplatesCache

C:\Program Files(x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplatesCache

Luego, ejecute devenv.exe /setuppara reconstruir la caché.

Simón
fuente
Me acabo de encontrar con un problema similar y esto me lo solucionó. ¡Gracias Simon! (Estoy usando VS2013, como referencia)
JR Smith
4

Doh! En caso de que alguien más reciba este error al intentar conectarse a un sitio web de IIS.

Verifique tres veces que su nombre de host sea correcto, había olvidado una '/' en (por ejemplo) http://my.testsite.com

Pruebe esto antes de reinstalar Visual Studio como lo hice yo. Mensaje de error terrible ...

Markive
fuente
1
En mi caso, intenté anular la URL raíz de la aplicación para agregar un parámetro GET a la URL que se inició. Ese era el lugar equivocado para hacerlo. Debería haber establecido una URL de inicio en la misma página de propiedades.
Kat
3

Probé todas las soluciones anteriores, ninguna me funciona, encontré la solución aquí

  • Abra ActivityLog.xml entrando en

    C:\Users\{UserName}\AppData\Roaming\Microsoft\VisualStudio\15.{Id} 
    
  • Compruebe si el error indica que

    "CreateInstance failed for package 
    [ReferenceManagerPackage]Source: 'mscorlib' Description: Could not load type 
     'Microsoft.VisualStudio.Shell.Interop.' from assembly 
     'Microsoft.VisualStudio.Shell.Interop.11.0' 
    
  • Luego ejecute este gacutilcomando a través del indicador VS Cmd (modo de administrador):

    1. Navegar a

      C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies   
      
    2. correr gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll

código de amanecer
fuente
1
Esta fue la única solución que funcionó para mí (VS 2017 professional / windows 10). También vi el error mscorlib en el registro de actividad. Reparar y restablecer todas las configuraciones no funcionó.
Nick Van Brunt
2

Tuve el mismo problema después de una actualización de VS2013 a VS2015.

El proyecto en el que estaba trabajando hacía referencia a sí mismo. Si bien a VS2013 no le importaba, a VS2015 no le gustó y me salió ese error. Después de eliminar la referencia, el error desapareció. Me tomó alrededor de 4 horas descubrir eso ...

yiev
fuente
Link ahora está muerto.
Nombre falso
Gracias, eliminé el enlace. Dado que la forma en que resolví este problema para mí fue justo debajo del enlace, al menos mi respuesta no fue completamente inútil.
yiev
2

Parece que para abrir el cuadro de diálogo Agregar referencia en Visual Studio 2017, Microsoft.VisualStudio.Shell.Interop.11.0.dll debe registrarse en el GAC. Puede seguir estos pasos para registrar este ensamblado en el GAC:

Abra el símbolo del sistema de desarrollo para VS2017 (asegúrese de ejecutarlo como administrador, de lo contrario, el registro de GAC puede fallar)

Cambie el directorio actual a la carpeta PublicAssemblies para su instalación de Visual Studio 2017. La mía era:

C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ PublicAssemblies

Ejecute el siguiente comando para registrar el ensamblado en el GAC:

gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll

C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ PublicAssemblies> gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll Utilidad de caché de ensamblado global de Microsoft (R) .NET. Versión 4.0.30319.0 Copyright (c) Microsoft Corporation. Todos los derechos reservados.

Ensamblado agregado exitosamente a la caché

Ahora reinicie VS2017 e intente agregar una referencia a su proyecto nuevamente y debería ver aparecer el cuadro de diálogo Agregar referencia.

Para obtener más aclaraciones, siga el enlace a continuación

https://camerondwyer.com/2017/05/03/how-to-fix-the-operation-could-not-be-completed-error-adding-reference-to-visual-studio-2017/#more-2286

Sharad Tiwari
fuente
Después de todos los esfuerzos. Esto me funcionó en el primer instante.
Yeshwant Mudholkar
2

Encontré la solución a continuación en https://developercommunity.visualstudio.com/content/problem/260196/add-a-reference-raise-error-error-hresult-e-fail-h.html dirección.

Me funcionó en VS 2019:

1 Abra "Símbolo del sistema para desarrolladores para VS 2017" como administrador

2 CD en "C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ PublicAssemblies"

3 Ejecute "gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll"

Después de un reinicio, todo funcionó bien.

Ugluk de Isengard
fuente
1

Escribí un programa simple para abrir diferentes carpetas mientras hacía clic en algunos botones específicos. Hice las propiedades del archivo como "contenido" y "copiar si es más nuevo" para realizar la implementación. Entonces, si instalé el archivo exe en el otro software, en realidad instala todos sus recursos y ejecuta el programa correctamente. Entonces, todo esto se trata de mi programa. Mientras desarrollaba esto a veces, si ejecuto el programa para verificar, mostraba el error

"Se ha devuelto HRESULT E_FAIL de una llamada a un componente COM"

y no pude abrir la vista del diseñador. Pero de alguna manera tengo una solución fácil para mí. No estoy seguro de si funcionará para otros o no.

Esta es la solucion:

Copie toda la carpeta de la aplicación en otra ubicación. haga clic en el archivo de la aplicación desde allí. no funcionará ya que es solo una copia y no verá al diseñador

  1. Desde el explorador de soluciones, elimine form1.vb (o puede tener un nombre diferente si se cambió durante el desarrollo)
  2. En el explorador de soluciones> haga clic con el botón derecho del ratón> agregue un elemento existente> busque el archivo Form1.vb desde donde se copia la carpeta (ubicación original)
  3. ejecute el programa en la nueva ubicación. Funcionará

El problema con esta solución si desea agregar algo y después de ejecutar el programa encuentra el mismo error, debe copiar toda la carpeta de la aplicación en otra ubicación nuevamente y seguir los pasos anteriores

Tousif Ahmed
fuente
1

El error ocurrió después de instalar el último SDK de Windows 10. Recibí el error al crear un proyecto C ++ con SDK 8.1. En las propiedades del proyecto, cambio al último SDK 10. reconstruir. Eso funciono. Cambiado de nuevo a 8.1. Reconstruir. No hay error.

Mike L
fuente
1

Simplemente elimine la carpeta de paquetes. Eso me ayudó

alekoo73
fuente
1

Causa principal: Microsoft.VisualStudio.Shell.Interop.11.0.dll no se encuentra en GAC.

Solución: 1. Vaya al menú de inicio y abra el símbolo del sistema para Visual Studio. 2. Ingrese el comando gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll 3. Si su sistema no puede encontrar este archivo dll, puede descargar desde el administrador de paquetes Nuget y luego puede proporcionar la ruta de dll

¡Todo listo! presiona enter y listo!

Dheeraj Bansal
fuente
0

Pasos para resolver el problema:

1.Abra su solución / aplicación web en VS 2012 en modo administrador.

2. Vaya a IIS y anote la configuración de su aplicación (por ejemplo, nombre de directorio virtual, ruta física, configuración de autenticación y grupo de aplicaciones utilizado).

3. Elimine (haga clic con el botón derecho y seleccione Eliminar) su aplicación del sitio web predeterminado. Actualice IIS.

4. Vuelva a VS 2012 y abra la configuración (haga clic con el botón derecho y seleccione propiedades) para su aplicación web.

5. Seleccione Web. En la sección Servidores asegúrese de haber seleccionado "Usar servidor web IIS local".

En el cuadro de texto Project Url, ingrese la ruta de su aplicación (http: // localhost/ Application Path). Haga clic en Crear directorio virtual.

7. Vaya a IIS y aplique la configuración indicada en el paso 2. Actualice IIS.

8. Vaya a VS 2012 y configure este proyecto como proyecto de inicio con la página correspondiente como página de inicio.

9.Haga clic en el botón Ejecutar para iniciar el proyecto en modo de depuración.

Esto me resolvió el problema para la aplicación web que se migró de VS 2010 a 2012. Espero que esto ayude a cualquiera que busque un problema específico.

La configuración de mi máquina es: IIS 7.5.7600.16385

VS 2012 Profesional

Windows 7 Enterprise (versión 6.1, compilación 7601: Service Pack 1)

Bhushan
fuente
No encuentro ningún "Web.In Servers" indicado en el paso 5 anterior. La única "configuración" (paso 4) es la página de propiedades (Mayúsculas-F4), a la que se hace referencia libremente en el paso 8. ¿Perspectivas?
MacSpudster
0

Esto sucede en nuestro servidor de compilación TFS algunas veces (registro cerrado). Se trata de la carpeta del espacio de trabajo. No sé por qué, pero el acceso a la carpeta del espacio de trabajo a veces está dañado. Lo que estoy haciendo para solucionar el problema es eliminar los espacios de trabajo de compilación de TFS y eliminar las carpetas del espacio de trabajo relevantes. La máquina de compilación TFS luego crea nuevos espacios de trabajo para sí misma y el problema se soluciona.

La solución de Tousif Ahmed debería funcionar para construcciones locales. Copiar la carpeta de la aplicación en otro lugar debería hacer lo mismo que estoy haciendo en la máquina de compilación TFS.

Levent Sezer
fuente
No usamos TFS y esto está en otra máquina de desarrollo en la que tenemos el problema
Matt
0

En mi caso, parece que Intellisense puede emitir este mensaje en Visual Studio 2013. La captura de pantalla siguiente muestra el error en la parte inferior de VisualStudio 2013 después de la primera carga de un proyecto de cliente. VS2013 "ERROR-HRESULT-E Captura de pantalla

Comencé a buscar en Google las causas de este error y decidí intentar eliminar los archivos user.vxproj como se mencionó anteriormente. Sin embargo, encontré que el proyecto se construyó sin problemas, luego, después de salir y volver a cargar el proyecto, ya no recibí el error. Así que supongo que en mi caso, fue algo de corrupción debido a mover el proyecto de la estructura de árbol del directorio de clientes a la estructura de árbol de mi disco de desarrollo local. La clave aquí es que en mi caso, el problema fue transitorio. No hice NADA y el problema pareció resolverse solo. (En general, no es algo deseable, ya que no arreglé nada, por lo que podría volver).

Ross Youngblood
fuente
No fui claro en mi respuesta. Intenté eliminar los archivos user.vxproj, eso no tuvo ningún efecto. Mi experiencia fue que el problema se resolvió solo después de una compilación, salga de vs2013 y luego reinicie. La respuesta aceptada NO funcionó para mi caso, y parece que el problema puede corregirse solo si carga, compila, sale y vuelve a cargar.
Ross Youngblood
0

Recientemente pasé aproximadamente 3 horas tratando de solucionar este problema en mi aplicación ASP.NET que se ejecuta en IIS local. Tenía especificado 'Anular URL raíz de la aplicación' y especifiqué la URL con una barra diagonal final (/) como http://my.dev.com/. Si guardaba las opciones del proyecto y volvía, mostraría la URL raíz anulada como http://http://my.dev.com. Una vez que eliminé la última barra inclinada, comenzó a comportarse bien y el error desapareció.

Richard Edwards
fuente
0

HRESULT E_FAIL se ha devuelto de una llamada a un componente COM

En mi caso, fue porque tenía diferentes proyectos con el mismo GUID en mi solución. (El proyecto fue creado por copiar / pegar)

Alix
fuente
0

Mi problema se manifestó al abrir el archivo appxmanifest de Win10 (sin juego de palabras). Simplemente instalando las herramientas de Windows 10 y el SDK (vaya a Nuevo-> Proyecto-> Seleccionar Windows-> Instalar herramientas) lo solucionó.

Bruno Samardžić
fuente
0
  1. Agregue el desarrollo iniciado en la arquitectura x86 o el sistema de 64 bits, luego se ejecutará también en el sistema de 32 bits.
  2. pero si agrega un desarrollo iniciado en un sistema de 32 bits y luego desea hacer cambios en el código fuente en 64 bits Nota: si está conectado a la licencia de SAP en el sistema del servidor, configure el puerto y el nombre del servidor a través del administrador de servicios; de lo contrario, el sistema dará error:

Contexto de conexión: - La recuperación de la fábrica de clases COM para el componente con CLSID {632F4591-AA62-4219-8FB6-22BCF5F60090} falló debido al siguiente error: 80040154 Clase no registrada (Excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Krishn Kumar Gupta
fuente
0

Solucioné el mismo problema eliminando la carpeta ComponentModelCache

  1. Cierre Visual Studio (si aún no lo ha hecho por desesperación)
  2. Abra una ventana del explorador de archivos y navegue hasta su carpeta AppData. Puedes llegar por:
    1. En la barra de búsqueda, escriba %APPDATA%/..y presione enter
    2. Alternativamente, navegue a C:\Users\\AppData
  3. Vaya a Local\Microsoft\VisualStudio\<version>donde está 12.0 para Visual Studio 2013.
  4. Elimine la carpeta ComponentModelCache.

Desde aquí: http://withmartin.net/how-visual-studios-component-model-cache-can-be-a-pain/

usuario2592899
fuente
0

No estoy seguro de los pasos exactos de reproducción del error (HRESULT E_FAIL ha sido devuelto de una llamada a un componente COM), pero la solución para mí fue:

  1. Cierre Visual Studio y repárelo a través del Panel de control.
  2. Reiniciar el sistema

Después del reinicio, el error desapareció.

Meghan N.
fuente
0

Enfrenté el mismo problema en Visual Studio 2017, siga estos pasos:

  1. Inicio -> Ejecutar -> regsvr32% SystemRoot% \ System32 \ msxml3.dll

  2. Inicio -> Ejecutar -> regsvr32% SystemRoot% \ SysWOW64 \ msxml3.dll

  3. Limpiar el proyecto.

  4. Reinicie Visual Studio.

    Los pasos 1 y 2 se copiaron de la publicación Besnik Kastrati.

Salman Saleh
fuente
0

Encuentro esta respuesta, haga clic en Ctrl + Alt + J, haga clic en (...) en la parte superior, ahora puede agregar dll desde Examinar, .Net u otro Después de hacer clic en el botón Aceptar, haga clic en (agregar a las referencias en el proyecto seleccionado en el explorador de soluciones) ( este es un botón verde más "+")

Behnam Gorbani
fuente
0

Pasé por todos los diferentes pasos sobre cómo solucionar este problema con VS2019 16.2.4 y el problema persiste. Ciertamente espero que MS solucione este problema, ya que esto ha estado sucediendo durante mucho tiempo.

Justo antes de agregar al Explorador de objetos, no pude averiguar cómo agregar el cuadro de diálogo Agregar referencia en esta versión, ya que no pude encontrar el GAC para 2019.

jasonqw38aus
fuente
0

Recibí este error al intentar instalar un paquete nuget que había descargado e instalado previamente en otro proyecto.

Al hacer clic en Borrar todos los cachés de NuGet en Herramientas> Opciones> Administrador de paquetes NuGet, esto me solucionó

Frijol
fuente
Del mismo modo, puede resultar útil eliminar el contenido de la carpeta de paquetes de la solución. En mi caso, tenía una carpeta sin nada en ella (probablemente se registró en algún momento), y eso provocó problemas.
K0D4
0

Tuve el mismo problema que ocurrió cuando estaba trabajando con la herramienta VS GUI. Lo que hice para solucionarlo fue que eliminé el repositorio local y lo bajé de mi fuente de git, ¡¡gracias git !! :)

Esta puede no ser la solución en todos los casos. pero al eliminar todos los archivos locales y volver a compilar, ¡pude hacer que funcionara nuevamente!

mosborn1987
fuente