web-dev-qa-db-fra.com

Erreur HRESULT E_FAIL a été renvoyée à partir d'un appel à un composant COM VS2012 lors du débogage

J'ai un problème à déboguer un projet migré de Visual Studio 2010 à 2012. À chaque fois que je le débogue, je reçois le message d'erreur suivant:

"Erreur HRESULT E_FAIL a été renvoyée par un appel à un composant COM".

La compilation et l’exécution de l’application sur un serveur local IIS fonctionne correctement; il est tout simplement impossible de déboguer.

L'autre modification, à part le passage à VS2012, est que j'utilise désormais Team Foundation Server pour le contrôle de la source et le suivi des problèmes, mais je ne vois pas en quoi cela l'affecterait.

Je peux le réduire au suivant

  • Le fichier de projet - il a été migré de VS 2003 en tant que projet de site Web et a été découpé et modifié dans les différentes versions.
  • Bibliothèque d'exécution Crystal Report/une autre bibliothèque

Quelqu'un a des idées?

36
Matt

J'ai supprimé les fichiers csproj.user et cela a fonctionné pour moi.

Dans d'autres cas, pour corriger cette erreur, je vais à l'onglet Web dans les propriétés du projet et coche "Utiliser le serveur de développement Visual Studio" et "Attribuer automatiquement le port". Après cela, je dois reconstruire le projet et redémarrer VS

22
Alejandro Haro

Ces dernières années, j'ai souvent eu ce problème. J'ai dû créer un nouveau fichier et déplacer le code dans le nouveau fichier pour le contourner.

Mais j'ai trouvé un solution rapide, facile et sans douleur .

Dans mon cas particulier, je supprime le fichier suo de la solution (pour autant que je sache, stocke simplement des informations telles que les fichiers ouverts dans le répertoire IDE et aucun autre dommage afin de le supprimer). Mon fichier était apparemment corrompu (l'IDE ne se souvenait plus des fichiers ouverts lors du redémarrage; sa taille était de 1,7 Mo, ce qui semble volumineux, même pour ma solution de projet 40, qui a rarement plus de 50 fichiers ouverts à la fois).

Pour résumer: la suppression du fichier .suo alors que VS était fermé, corrige le problème E_FAIL lors de l'ouverture du fichier winforms en mode concepteur.

Modifier:

Je venais tout juste de faire cela dans VS2017, mais pour une autre raison, il prenait plus de temps à construire et a pris plus de 5 minutes pour arrêter une session de débogage. premier port d'escale.

39
Tim Hall

J'ai eu le même problème avec un projet c ++ dans Visual Studio 2019.

La solution suivante a fonctionné pour moi:

  • Fermez Visual Studio.
  • Accédez au dossier racine du projet et supprimez le répertoire .vs.
  • Démarrez Visual Studio et ouvrez la solution.
  • La construction devrait maintenant fonctionner.
25
datoml

Je voulais ajouter que j'ai rencontré cette erreur lors de l'ouverture du fichier de concepteur dans l'application WinForms. Mon problème était que l'une des références du projet était le référencement proprement dit. Apparemment, cela peut arriver comme mentionné ici

https://social.msdn.Microsoft.com/Forums/office/en-US/00aede04-d8cd-4475-8114-4b4792261052/winforms-designer-error-hresult-efail-has-been-returned-from- a-call-to-a-com-composant

J'ai enlevé la référence et ça fonctionne bien. 

5
Sugat

Peut-être que cette page aide:

Scénario 2: Microsoft Visual Studio 2010 IDE se bloque lors de la création de OR débogage d'un projet d'application Web. Cette erreur ci-dessus est due à un cache corrompu de Visual Studio 2010. Pour résoudre le problème, supprimez simplement le cache du projet à l'emplacement ci-dessous:

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

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

Ensuite, exécutez devenv.exe /setup pour reconstruire le cache.

4
Simon

Doh! Si quelqu'un d'autre rencontre cette erreur en essayant de se connecter à un site Web IIS.

Vérifiez trois fois que votre nom d’hôte est correct, j’avais oublié un '/' dans (par exemple) http://my.testsite.com

Essayez ceci avant de réinstaller Visual Studio comme je l’ai fait .. Un message d’erreur terrible ..

4
Markive

Désolé de relancer un fil mort, mais j’ai résolu ce problème sur VS2017 en supprimant le cache de modèle de projet et les dossiers de cache de modèle d’élément dans

%appdata*\Local\Microsoft\VisualStudio\[BUILD]

Puis réinitialiser les paramètres de Visual Studio via

Tools>Import and export settings>reset all settings

Nous avons également entendu dire que désactiver la "charge de solution légère pour tous les projets" peut aider.

4
Ricky Divjakovski

J'ai eu le même problème après une mise à niveau de VS2013 à VS2015.

Le projet sur lequel je travaillais se référait lui-même. Alors que VS2013 s'en fichait, VS2015 n'aimait pas cela et j'ai eu cette erreur. Après avoir supprimé la référence, l'erreur avait disparu. Cela m'a pris environ 4 heures pour le découvrir ...

2
yiev

Cela a résolu mon problème:

Démarrer -> Exécuter -> regsvr32 %SystemRoot%\System32\msxml3.dll

Démarrer -> Exécuter -> regsvr32 %SystemRoot%\SysWOW64\msxml3.dll

Avant cela, j'ai essayé la solution ci-dessus de Simon, mais cela n'a pas fonctionné pour moi!

Peut-être que combiner ces deux solutions a fait le travail!

2
Besnik Kastrati

L'erreur est survenue après l'installation du dernier SDK Windows 10. J'obtenais l'erreur en construisant un projet C++ à l'aide du SDK 8.1. Dans les propriétés du projet, je passe à la dernière version du SDK 10. reconstruire. Ça a marché. Retourné à 8.1. Reconstruire. Pas d'erreur.

1
Mike L

J'ai écrit un programme simple pour ouvrir un dossier différent en cliquant sur des boutons spécifiques. J'ai fait les propriétés du fichier comme "contenu" et "copie si plus récent" pour effectuer le déploiement. Donc, si j'ai installé le fichier exe dans un autre logiciel, il installe en fait toutes ses ressources et exécute le programme correctement . Donc, tout cela concerne mon programme. En développant cela parfois si je lance le programme pour vérifier, il a montré l'erreur 

"HRESULT E_FAIL a été renvoyé à partir d'un appel à un composant COM"  

et je ne pouvais pas ouvrir la vue du concepteur. Mais d'une manière ou d'une autre, j'ai une solution facile pour moi. Je ne sais pas si cela fonctionnera pour les autres ou non. 

Voici la solution:

Copiez le dossier de l'application dans son intégralité. cliquez sur le fichier d'application à partir de là. ça ne marchera pas car c’est juste une copie et vous ne verrez pas le designer

  1. Dans l'explorateur de solutions, supprimez le formulaire1.vb (ou un nom différent s'il a été modifié au cours du développement).
  2. Dans l'explorateur de solutions> cliquez avec le bouton droit de la souris sur> ajoutez un élément existant> parcourez le fichier Form1.vb à partir duquel le dossier est copié (emplacement d'origine).
  3. exécutez le programme dans le nouvel emplacement. Ça va marcher

Le problème avec cette solution si vous souhaitez ajouter quelque chose et qu'après avoir exécuté le programme, vous rencontriez la même erreur, vous devez copier à nouveau le dossier de l'application dans un autre emplacement et suivre les étapes ci-dessus.

1
Tousif Ahmed

HRESULT E_FAIL a été renvoyé à partir d'un appel à un composant COM

Dans mon cas, c’est parce que j’avais différents projets avec le même GUID dans ma solution. (Le projet a été créé par copier/coller)

0
Alix

J'ai récemment passé environ 3 heures à essayer de résoudre ce problème sur mon application ASP.NET s'exécutant sur IIS local. J'avais spécifié 'Remplacer l'URL racine de l'application' et j'avais spécifié l'URL avec une barre oblique finale (/) telle que http://my.dev.com/. Si je sauvegardais les options du projet et que je revenais, l'URL racine remplacée serait http://http://my.dev.com. Une fois que j'ai supprimé la dernière barre oblique, il a commencé à se comporter correctement et l'erreur a disparu.

0
Richard Edwards

Dans mon cas, il semble que ce message puisse être émis par Intellisense dans Visual Studio 2013. La capture d'écran ci-dessous montre l'erreur au bas de VisualStudio 2013 après le premier chargement d'un projet client . VS2013 "ERROR-HRESULT-E Screenshot

J'ai commencé à chercher dans Google ce qui est à l'origine de cette erreur et j'ai décidé d'essayer de supprimer les fichiers user.vxproj comme indiqué ci-dessus. J'ai toutefois constaté que le projet était construit sans problèmes, puis après avoir quitté et rechargé le projet, je ne recevais plus l'erreur. Donc, je suppose que dans mon cas, il y a eu une corruption due au déplacement du projet de l'arborescence de répertoires des clients vers l'arborescence de mon disque de développement local. La clé ici est que dans mon cas, le problème était passager. Je n'ai rien fait et le problème a semblé se résoudre tout seul. (Ce n’est généralement pas souhaitable, car je n’ai rien réparé et pourrait donc revenir).

0
Ross Youngblood

J'ai rencontré le même problème dans Visual Studio 2017, Suivez les étapes suivantes:

  1. Démarrer -> Exécuter -> regsvr32% SystemRoot%\System32\msxml3.dll

  2. Démarrer -> Exécuter -> regsvr32% SystemRoot%\SysWOW64\msxml3.dll

  3. Nettoyer le projet.

  4. Redémarrez Visual Studio.

    Les étapes 1 et 2 ont été copiées à partir du poste de Besnik Kastrati.

0
Salman Saleh

Pas sûr des étapes de reproduction exactes de l'erreur (HRESULT E_FAIL a été renvoyé à partir d'un appel à un composant COM), mais la solution pour moi était la suivante: 

  1. Fermez Visual Studio et réparez-le via le Panneau de configuration. 
  2. Redémarrer le système 

Après le redémarrage, l'erreur avait disparu.

0
Meghan N.

J'ai eu ce problème parce que j'ai essayé d'ouvrir les projets SSIS et de tester le pilote Attunity pour Oracle à partir de SSDT 2013 (TFS) dans SSDT 2017. Dans un nouveau projet SSIS, le pilote Attunity fonctionnerait correctement, mais dans le projet SSIS mis à niveau, l'erreur J'essaie de tester la connexion. La solution consiste à réparer l'ancien projet. 

0
Tahir
  1. Ajoutez le développement initié sur une architecture x86 ou un système 64 bits, puis sur un système 32 bits également.
  2. mais si vous ajoutez un développement initié sur un système 32 bits et que vous souhaitez ensuite apporter des modifications au code source en 64 bits Remarque: si vous êtes connecté, la licence SAP est configurée, configurez le port et définissez le nom du serveur via le gestionnaire de services, Le système donnera une erreur:

Contexte de connexion: - Récupération de la fabrique de classes COM pour le composant avec CLSID {632F4591-AA62-4219-8FB6-22BCF5F60090} a échoué en raison du fichier erreur suivante: 80040154 Classe non enregistrée (exception de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

0
Krishn Kumar Gupta

Étapes pour résoudre le problème:

1.Ouvrez votre solution/application Web dans VS 2012 en mode administrateur.

2.Accédez à IIS et notez les paramètres de votre application (par exemple, nom de répertoire virtuel, chemin d'accès physique, paramètre d'authentification et pool d'applications utilisé).

3. Supprimez (cliquez avec le bouton droit de la souris et sélectionnez Supprimer) votre application du site Web par défaut. Actualisez IIS.

4. Revenez à VS 2012 et ouvrez les paramètres (clic droit et sélectionnez Propriétés) pour votre application Web.

5.Sélectionnez la section Serveurs Web.In et assurez-vous d'avoir sélectionné "Utiliser le serveur Web local IIS".

6. Dans la zone de texte URL du projet, entrez le chemin de votre application (http: // localhost/Chemin de l'application). Cliquez sur Créer un répertoire virtuel.

7.Accédez à IIS et appliquez les paramètres notés à l'étape 2. Actualisez IIS.

8.Allez sur VS 2012 et définissez ce projet en tant que projet de démarrage avec la page appropriée en tant que page de démarrage.

9.Cliquez sur le bouton Exécuter pour démarrer le projet en mode débogage.

Ce problème résolu pour moi pour une application Web qui a été migrée de VS 2010 à 2012. J'espère que cela aidera tous ceux qui recherchent un problème spécifique.

La configuration de ma machine est la suivante: IIS 7.5.7600.16385

VS 2012 Professional

Windows 7 Enterprise (Version 6.1 - Build 7601: Service Pack 1) 

0
Bhushan

Mon problème s'est manifesté avec l'ouverture du fichier Win10 appxmanifest (sans jeu de mots). Installer simplement les outils Windows 10 et le SDK (allez dans Nouveau-> Projet-> Sélectionnez Windows-> Installer les outils) a corrigé le problème.

0

Je trouve cette réponse cliquez Ctrl + Alt + J cliquez (...) dans le haut, vous pouvez maintenant ajouter un fichier DLL à partir de Parcourir, Net ou autre c'est un bouton plus "+" vert)

0
Behnam Gorbani

J'ai essayé toutes les solutions ci-dessus, aucune ne fonctionne pour moi, j'ai trouvé la solution ici

  • Ouvrez ActivityLog.xml en allant dans

    C:\Users\{UserName}\AppData\Roaming\Microsoft\VisualStudio\15.{Id} 
    
  • Vérifier si l'erreur dit 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' 
    
  • Ensuite, exécutez cette commande gacutil via VS Cmd Prompt (mode admin):

    1. Aller vers

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

0
dawncode

J'ai résolu le même problème en supprimant le dossier ComponentModelCache

  1. Fermez Visual Studio (si vous ne l’avez pas déjà fait par désespoir)
  2. Ouvrez une fenêtre d’explorateur de fichiers et naviguez dans votre dossier AppData. Vous pouvez y arriver par:
    1. Dans la barre de recherche, tapez %APPDATA%/.. et appuyez sur Entrée
    2. Sinon, accédez à C:\Users\\AppData
  3. Allez dans Local\Microsoft\VisualStudio\<version> où est 12.0 pour Visual Studio 2013.
  4. Supprimez le dossier ComponentModelCache.

De là: http://withmartin.net/how-visual-studios-component-model-cache-can-be-a-pain/

0
user2592899

Cela se produit parfois dans notre serveur de compilation TFS (enregistrement synchronisé). Il s'agit du dossier de l'espace de travail. Je ne sais pas pourquoi mais l'accès aux dossiers de l'espace de travail est parfois corrompu. Ce que je fais pour résoudre le problème consiste à supprimer les espaces de travail de génération TFS et les dossiers d’espace de travail pertinents. La machine de compilation TFS crée alors de nouveaux espaces de travail pour elle-même et le problème est résolu.

La solution de Tousif Ahmed devrait fonctionner pour les constructions locales. Copier le dossier de l'application à un autre endroit devrait faire la même chose que ce que je fais dans la machine de compilation TFS.

0
Levent Sezer