Помилка HRESULT E_FAIL повернута із виклику COM-компоненту VS2012 під час налагодження


97

У мене проблема з налагодженням проекту, перенесеного з Visual Studio 2010 на 2012 рік. Кожного разу, коли я переходжу до його налагодження, я отримую повідомлення про помилку:

"Помилка HRESULT E_FAIL повернута із виклику до COM-компонента".

Компіляція та запуск програми на локальному сервері IIS працює нормально - просто неможливо налагодити.

Інша зміна, окрім переходу на VS2012, полягає в тому, що я зараз використовую Team Foundation Server для контролю джерел та відстеження проблем, але я не бачу, як це може вплинути на це.

Я можу звузити це до наступного

  • Файл проекту - він був перенесений з VS 2003 як проект веб-сайту, а також вирізаний та змінений в різних версіях
  • Бібліотека виконання Crystal Report / якась інша бібліотека

Хто має ідеї?


Чи можете ви опублікувати файл журналу оновлення? Також структуру проекту, яку ви вирішили, та образ помилки.
Nexus23,

Чи вдалося вам коли-небудь це зрозуміти? Я стикаюся з точно такою ж проблемою і вириваю волосся!
Кріс Філліпс,

Ні, мені довелося продовжувати використовувати VS2010 - проект переписується, тому поточна розробка майже зупинилася ...
Метт,

Нещодавно видалена відповідь нижче наводила на думку, що Windows Update це виправить.
половинка

Привіт, ви прийняли відповідь, але рішення @ TimHall може бути простішим та менш нав'язливим. Ви пробували?
Спенсер

Відповіді:


57

Я видалив файли csproj.user, і він працював у мене.

У деяких інших випадках, щоб виправити цю помилку, я переходжу на вкладку Веб у властивостях проекту та перевіряю «Використовувати Visual Studio Development Server» та «Автопризначити порт». Після цього мені потрібно відновити проект і перезапустити VS


Бінго - не можу повірити, що це спричинило проблему - дякую, що розмістили це.
Метт

7
Трохи роз’яснень щодо MVS2017. Перейдіть до Інструменти -> Параметри ..., а потім Проекти та рішення -> Веб-проекти, потім зніміть прапорець біля пункту «Автоматично показувати з’єднання даних із web.config у Провіднику сервера ...», а потім перекомпілюйте. Привіт з 2019 року, працює як шарм!
Wormer

Я спробував цей Wormer, але він у мене якось не спрацював. !!!
Abhijeet Sinha

Нейтре видалив csproj.user допоміг
Абхієет Сіньха

74

Останнім часом я отримую це багато. Мені доводилося створювати новий файл і переміщувати код до нового файлу, щоб обійти його.

Я виправив це, видаливши файл suo рішення (наскільки я можу зрозуміти, він просто зберігає інформацію, наприклад, які файли відкриті в IDE та інше, і видалення не завдає реальної шкоди).

Мій файл був начебто пошкоджений. (IDE не пам’ятав, які файли були відкриті під час перезапуску. Його розмір був 1,7 Мб, що здається великим, навіть для мого 40-річного проектного рішення, яке рідко відкриває більше 50 файлів одночасно.)

Редагувати: Я нещодавно мав робити це у VS2017, але з іншої причини, це займало більше часу і зайняло 5+ хвилин, щоб зупинити сеанс налагодження, видаливши цей докучливий файл suo, це виправлено прямо зараз. це мій перший порт заходу.


1
Рішення працювали для мене (VS 2013 - додаток
Winforms

Пробував все, але це єдине рішення, яке спрацювало для мене .. дякую @Tim Hall
Malik Khalil

Дякую! Це мені допомогло
rhedin

Працює і в VS 2017.
ctwheels

4
Дякуємо, .vsдерево каталогів видалено та виправлено проблему збірки у VS2017 з тією ж помилкою.
Павло Мачиняк

66

У мене була та ж проблема з проектом c ++ у Visual Studio 2019.

Для мене спрацювало таке рішення:

  • Закрийте Visual Studio.
  • Перейдіть до кореневої папки проекту та видаліть каталог .vs.
  • Запустіть Visual Studio і відкрийте рішення.
  • Тепер збірка повинна працювати.

3
Працював у мене. Не забудьте закрити VS після видалення каталогу .vs. Каталог .vs прихований, до речі.
Харі,

Також C ++ у VS 2019 із папки збірки Cmake OpenCV. видалив (приховав) папку .vs з кореневого каталогу, і це спрацювало. ВИ - справжні супергерої!
Тодд-ЕКЮ

10

Це вирішило мою проблему:

Пуск -> Виконати -> regsvr32 %SystemRoot%\System32\msxml3.dll

Пуск -> Виконати -> regsvr32 %SystemRoot%\SysWOW64\msxml3.dll

До цього я пробував вищезазначене рішення від Саймона, але не працював для мене!

Можливо, поєднання цих двох рішень зробило свою справу!


2
Це спрацювало і на мене. Я не знаю, як В.С. потрапив у цей стан, але це вивело мене з нього. Я отримав цю помилку при відкритті рішення
the_mandrill 02

6

Вибачте за пожвавлення мертвої нитки, але я вирішив це на VS2017, видаливши кеш шаблону проекту та папки кешу шаблону елементів у

%localappdata%\Microsoft\VisualStudio\[BUILD]

Потім скидання налаштувань Visual Studio через

Tools>Import and export settings>reset all settings

Також я чув, що відключення "Легкого навантаження рішення для всіх проектів" може допомогти.


1
це спрацювало і на мене. Я просто перейменував усі папки, у яких Visual Studios, а VS заново створив усі папки, і помилки, які я мав, усунули. Дякую!
TravisWhidden

"Інструменти> Імпорт та експорт налаштувань> скинути всі налаштування" Спрацювало для мене, tyvm.
Jhollman,

5

Я хотів додати, що зіткнувся з цією помилкою під час відкриття файлу дизайнера в програмі WinForms. Моя проблема полягала в тому, що одне з посилань у проекті посилалося саме на себе. Очевидно, це може трапитись, як тут було згадано

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-компонент

Я видалив посилання, і воно працює нормально.


1
Це не відповідь лише на посилання. Він описує можливе рішення та посилання у якості посилання.
Роберт Колумбія,

1
Це також спрацювало для мене. У моєму файлі .proj був цей магічний посилальний запис, який з’явився після мого останнього коміту git. HintPath вказав на папку obj \ Debug проекту. Цей запис вилучено та відновлено, тепер усі мої дизайнери працюють.
Карл,

1
Це спрацювало і у мене. Проект мав посилання на себе для UserControl. Довелося видалити посилання, очистити проект, а потім відновити. Відкривається програма WinForm!
Дуг Кнудсен,

4

Можливо, ця сторінка допоможе:

Сценарій другий: IDE Microsoft Visual Studio 2010 аварійно завершує роботу під час створення АБО налагодження проекту веб-додатків. Ця вище помилка виникає через пошкоджений кеш Visual Studio 2010. Щоб вирішити проблему, просто видаліть кеш проекту з наведеного нижче місця:

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

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

Потім запустіть, devenv.exe /setupщоб відновити кеш.


Я просто зіткнувся з подібною проблемою, і це вирішило це для мене. Дякую Саймоне! (Я використовую VS2013, для довідки)
JR Smith

4

Дох! На випадок, якщо хтось інший отримає цю помилку при спробі приєднатись до веб-сайту IIS.

Потрійна перевірка правильності імені вашого хосту. Я забув (/) у (наприклад) http://my.testsite.com

Спробуйте це перед тим, як перевстановити Visual Studio, як я це зробив .. Жахливе повідомлення про помилку ..


1
У моєму випадку я намагався замінити кореневу URL-адресу програми, щоб додати параметр GET до URL-адреси, яка запущена. Це було неправильне місце, щоб це зробити. Мав би встановити початкову URL-адресу на тій же сторінці властивостей.
Kat

3

Я спробував усі вищезазначені рішення, жодне не працює для мене, рішення я знайшов тут

  • Відкрийте ActivityLog.xml, зайшовши в

    C:\Users\{UserName}\AppData\Roaming\Microsoft\VisualStudio\15.{Id} 
    
  • Перевірте, чи така помилка стверджує

    "CreateInstance failed for package 
    [ReferenceManagerPackage]Source: 'mscorlib' Description: Could not load type 
     'Microsoft.VisualStudio.Shell.Interop.' from assembly 
     'Microsoft.VisualStudio.Shell.Interop.11.0' 
    
  • Потім запустіть цю gacutilкоманду через командний рядок VS Cmd (режим адміністратора):

    1. Перейдіть до

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


1
Це було єдине рішення, яке працювало для мене (VS 2017 professional / windows 10). Я також побачив помилку mscorlib у журналі активності. Відновити та скинути всі налаштування не вдалося.
Нік Ван Брант,

2

У мене була та ж проблема після оновлення з VS2013 до VS2015.

Проект, над яким я працював, сам посилався на нього. Хоча VS2013 було все одно, VS2015 це не сподобалось, і я отримав цю помилку. Після видалення посилання помилка зникла. На це мені зайняло близько 4 годин ...


Посилання вже мертве.
Фальшиве ім'я

Дякую, посилання видалено. Оскільки спосіб вирішення цього питання для мене знаходився просто за посиланням, принаймні моя відповідь не була абсолютно марною.
yiev

2

Здається, що для відкриття діалогового вікна Додати посилання у Visual Studio 2017 файл Microsoft.VisualStudio.Shell.Interop.11.0.dll потрібно зареєструвати в GAC. Ви можете виконати такі дії, щоб зареєструвати цю збірку в GAC:

Відкрийте командний рядок розробки для VS2017 (переконайтеся, що ви запустили адміністратора як адміністратора, інакше реєстрація GAC може не вдатися)

Змініть поточний каталог на папку PublicAssemblies для інсталяції Visual Studio 2017. Моє було:

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ PublicAssemblies

Виконайте таку команду, щоб зареєструвати збірку в GAC:

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

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ PublicAssemblies> gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll Утиліта глобального кешування Microsoft (R) .NET. Версія 4.0.30319.0 Авторське право (c) Microsoft Corporation. Всі права захищені.

Збірка успішно додана до кешу

Тепер перезапустіть VS2017 і спробуйте додати посилання на свій проект ще раз, і ви побачите діалогове вікно Додати посилання.

Для отримання додаткових роз’яснень перейдіть за посиланням нижче

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


Після всіх зусиль. Це мене спрацювало в першу мить.
Yeshwant Mudholkar

2

Я знайшов рішення нижче на https://developercommunity.visualstudio.com/content/problem/260196/add-a-reference-raise-error-error-hresult-e-fail-h.html .

У мене це працювало у VS 2019:

1 Відкрийте "Командний рядок розробника для VS 2017" як адміністратор

2 компакт-диска в "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ PublicAssemblies"

3 Запустіть "gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll"

Після перезапуску все це працювало добре.


1

Я написав просту програму для відкриття іншої папки, натискаючи на певні кнопки. Я зробив властивості файлу як "вміст" та "скопіювати, якщо новіші" для розгортання. Отже, якщо я встановив файл exe в інше програмне забезпечення, він фактично інсталює всі свої ресурси і добре запускає програму. Отже, це все про мою програму. При розробці цього іноді, якщо я запускаю програму для перевірки, вона виявляє помилку

"HRESULT E_FAIL повернуто із виклику до COM-компонента"

і я не зміг відкрити подання дизайнера. Але я якось отримав просте рішення для мене. Я не впевнений, чи це спрацює для інших, чи ні.

Ось рішення:

Скопіюйте всю папку програми в інше місце. натисніть на файл програми звідти. це не спрацює, оскільки це лише копія, і ви не побачите дизайнера

  1. З провідника рішень видаліть form1.vb (або може мати іншу назву, якщо вона була змінена під час розробки)
  2. У провіднику рішень> клацніть правою кнопкою миші> додайте існуючий елемент> перегляньте файл Form1.vb, звідки копіюється папка (оригінальне розташування)
  3. запустіть програму в новому місці. Це спрацює

Проблема з цим рішенням, якщо ви хочете щось додати, і після запуску програми ви виявите ту саму помилку, вам доведеться знову скопіювати всю папку програми в іншому місці та виконати описані вище дії


1

Помилка сталася для мене після встановлення останньої версії Windows 10 SDK. Я отримав помилку під час створення проекту C ++ за допомогою SDK 8.1. У властивостях проекту я переходжу на останні 10 SDK. перебудувати. Це спрацювало. Змінено назад на 8.1. Відновити. Помилки немає.


1

Просто видаліть папку пакетів, що мені допомогло


1

Основна причина: Microsoft.VisualStudio.Shell.Interop.11.0.dll відсутній у GAC.

Рішення: 1. Перейдіть до меню «Пуск» і відкрийте командний рядок для Visual Studio 2. Введіть команду gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll 3. Якщо у випадку, якщо ваша система не змогла знайти цей файл dll, ви можете завантажити це з менеджера пакунків Nuget, а потім може надати шлях dll

Все готово! натисніть Enter і все готово!


0

Кроки для вирішення проблеми:

1. Відкрийте своє рішення / веб-програму в VS 2012 в режимі адміністратора.

2. Перейдіть до IIS і запишіть параметри програми (наприклад, ім'я віртуального каталогу, фізичний шлях, налаштування автентифікації та використовуваний пул програм).

3. Видаліть (клацніть правою кнопкою миші та виберіть Видалити) свою програму з веб-сайту за замовчуванням. Оновити IIS.

4. Поверніться до VS 2012 і відкрийте налаштування (клацніть правою кнопкою миші та виберіть властивості) для веб-програми.

5. Виберіть Web.In Server Servers переконайтеся, що ви вибрали "Use Local IIS Web Server".

6. У текстовому полі Project Url введіть шлях до програми (http: // localhost/ Path of Application). Клацніть на Створити віртуальний каталог.

7. Перейдіть до IIS і застосуйте параметри, зазначені в кроці 2. Оновіть IIS.

8. Перейдіть до VS 2012 та встановіть цей проект як стартовий проект із відповідною сторінкою як стартовою.

9. Клацніть на кнопку запуску, щоб запустити проект у режимі налагодження.

Це вирішило для мене проблему з веб-додатком, який було перенесено з VS 2010 на 2012 рік. Сподіваюся, це допоможе кожному, хто шукає конкретну проблему.

Моя конфігурація машини: IIS 7.5.7600.16385

VS 2012 Professional

Windows 7 Enterprise (версія 6.1 - збірка 7601: з пакетом оновлень 1)


Я не знайшов жодного "Web.In Servers", зазначеного в кроці 5 вище. Єдиними "налаштуваннями" (крок 4) є сторінка властивостей (Shift-F4), на яку вільно посилаються в кроці 8. Статистика?
MacSpudster

0

Це трапляється на нашому сервері збірки TFS кілька разів (реєстрація Gated). Йдеться про папку робочої області. Не знаю чому, але доступ до папки робочої області іноді пошкоджений. Що я роблю, щоб виправити проблему, це видалення робочих областей збірки TFS та видалення відповідних папок робочої області. Потім машина побудови TFS створює для себе нові робочі області, і проблема вирішена.

Рішення Тусіфа Ахмеда має працювати для місцевих будівель. Скопіювати папку програми в інше місце має робити те саме, що я роблю в машині побудови TFS.


Ми не використовуємо TFS, і це на іншій машині розробника, на якій ми маємо проблему
Метт

0

У моєму випадку, схоже, це повідомлення може бути видане Intellisense у Visual Studio 2013. На скріншоті нижче показано помилку внизу VisualStudio 2013 після першого завантаження проекту клієнта. VS2013 "ПОМИЛКА-HRESULT-E Знімок екрана

Я почав шукати, що спричиняє цю помилку, і вирішив спробувати видалити файли user.vxproj, як зазначено вище. Однак я виявив, що проект побудований без проблем, то після виходу та повторного завантаження проекту я більше не отримував помилку. Отже, я припускаю, що у моєму випадку це була певна корупція через переміщення проекту із деревоподібної структури каталогів клієнтів до моєї деревної структури диска локальної розробки. Ключовим тут є те, що в моєму випадку проблема була тимчасовою. Я НІЧОГО не зробив, і проблема виявилася вирішена сама собою. (Зазвичай не бажана річ, оскільки я нічого не виправив, щоб це могло повернутися).


Я не зрозумів у своїй відповіді. Я спробував видалити файли user.vxproj, що ніяк не вплинуло. Мій досвід полягав у тому, що проблема вирішилася сама після складання, виходу vs2013 та перезапуску. Прийнята відповідь НЕ працювала в моєму випадку, і, схоже, проблема може вирішити себе, якщо ви завантажуєте, збираєте, виходите, перезавантажуєте.
Росс Янгблуд

0

Нещодавно я витратив близько 3 годин, намагаючись виправити цю проблему в моїй програмі ASP.NET, що працює на локальній службі IIS. Мені було вказано "Замінити кореневу URL-адресу програми", і я вказав URL-адресу із закінчуваною косою рискою (/), наприклад http://my.dev.com/. Якби я зберег параметри проекту і повернувся, він показав би замінену кореневу URL-адресу як http://http://my.dev.com. Після того, як я видалив останню косу риску, вона почала поводитися нормально, і помилка зникла.


0

HRESULT E_FAIL повернуто із виклику до компонента COM

У моєму випадку це було тому, що у моєму рішенні були різні проекти з однаковим GUID. (Проект створено методом копіювання / вставлення)


0

Моя проблема проявляється при відкритті файлу програми Win10 appxmanifest (каламбур не призначений). Просто встановивши інструменти Windows 10 та SDK (перейдіть до New-> Project-> Select Windows-> Install Tools) виправили це.


0
  1. Додайте розробку, розпочату на архітектурі x86 або 64-бітній системі, тоді вона також буде працювати на 32-бітній системі.
  2. але якщо ви додаєте до розробки, розпочатої на 32-бітній системі, а потім ви хочете внести зміни у вихідний код у 64-бітній Примітка: якщо ви підключені до ліцензії SAP на серверній системі, встановіть порт і встановіть ім'я сервера через менеджер послуг, інакше система видасть помилка:

Контекст підключення: - Отримання заводу COM-класу для компонента з CLSID {632F4591-AA62-4219-8FB6-22BCF5F60090} не вдалося через таку помилку: 80040154 Клас не зареєстровано (Виняток з HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).


0

Я вирішив ту ж проблему, видаливши папку ComponentModelCache

  1. Закрийте Visual Studio (якщо ви ще не зробили цього з відчаю)
  2. Відкрийте вікно провідника файлів і перейдіть до папки AppData. Доїхати можна:
    1. У рядку пошуку введіть %APPDATA%/..і натисніть клавішу Enter
    2. Або ж перейдіть до C:\Users\\AppData
  3. Перейдіть Local\Microsoft\VisualStudio\<version>де 12.0 для Visual Studio 2013.
  4. Видаліть папку ComponentModelCache.

Звідси: http://withmartin.net/how-visual-studios-component-model-cache-can-be-a-pain/


0

Не впевнений у точних кроках відтворення помилки (HRESULT E_FAIL повернуто із виклику COM-компоненту), але рішення для мене було:

  1. Закрийте Visual Studio і відремонтуйте його за допомогою панелі керування.
  2. Перезавантажте систему

Після перезапуску помилки не було.


0

Я зіткнувся з такою ж проблемою у Visual Studio 2017, виконайте такі дії:

  1. Пуск -> Виконати -> regsvr32% SystemRoot% \ System32 \ msxml3.dll

  2. Пуск -> Виконати -> regsvr32% SystemRoot% \ SysWOW64 \ msxml3.dll

  3. Очистіть проект.

  4. Перезапустіть візуальну студію.

    Крок 1 та 2 були скопійовані з посту Besnik Kastrati.


0

Я знайшов цю відповідь, натиснувши Ctrl + Alt + J клацнути (...) у верхній частині, тепер ви можете додати dll із браузера, .Net або іншого. Після натискання кнопки OK натисніть на (додати до посилань у вибраному Project in explorer explorer) ( це зелена кнопка плюс "+")


0

Я пройшов усі різні кроки щодо того, як вирішити цю проблему за допомогою VS2019 16.2.4, і проблема все ще залишається. Я, звичайно, сподіваюся, що MS вирішує цю проблему, оскільки це триває вже давно.

Якраз над додаванням до Object Browser, я не міг зрозуміти, як додати діалогове вікно Додати посилання в цій версії, оскільки я не зміг знайти GAC на 2019 рік.


0

Я отримав цю помилку під час спроби встановити пакет nuget, який раніше завантажував та інсталював в іншому проекті.

Натиснувши Очистити всі кеші NuGet у розділі Інструменти> Параметри> Менеджер пакунків NuGet, це вирішено для мене


Подібним чином може допомогти видалення вмісту папки пакунків рішення. У моєму випадку у мене була папка, в якій нічого не було (можливо, в якийсь момент була зареєстрована), і це призвело до проблем.
K0D4

0

У мене була та сама проблема, яка сталася під час роботи з інструментом графічного інтерфейсу VS. Що я зробив, щоб виправити це, я видалив локальний репозиторій і витягнув його з мого джерела git - дякую git !! :)

Це може бути рішенням не у всіх випадках. але видаливши всі локальні файли та перекомпілювавши, я зміг змусити його знову працювати!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.