program story

디버깅 할 때 COM 구성 요소 VS2012 호출에서 오류 HRESULT E_FAIL이 반환되었습니다.

inputbox 2020. 12. 7. 08:08
반응형

디버깅 할 때 COM 구성 요소 VS2012 호출에서 오류 HRESULT E_FAIL이 반환되었습니다.


Visual Studio 2010에서 2012로 마이그레이션 된 프로젝트를 디버깅하는 데 문제가 있습니다. 디버깅 할 때마다 오류 메시지가 나타납니다.

"COM 구성 요소에 대한 호출에서 오류 HRESULT E_FAIL이 반환되었습니다."

로컬 IIS 서버에서 응용 프로그램을 컴파일하고 실행하면 정상적으로 작동합니다. 디버그 할 수 없습니다.

VS2012로 이동하는 것 이외의 다른 변경 사항은 현재 소스 제어 및 문제 추적에 Team Foundation Server를 사용하고 있다는 것입니다.하지만 이것이 어떻게 영향을 미치는지 알 수 없습니다.

다음으로 좁힐 수 있습니다

  • 프로젝트 파일-웹 사이트 프로젝트로 VS 2003에서 마이그레이션되었으며 다른 버전으로 잘려서 변경되었습니다.
  • Crystal Report 런타임 라이브러리 / 다른 라이브러리

아이디어가있는 사람?


나는 csproj.user 파일을 제거했고 그것은 나를 위해 일했습니다.

다른 경우에는이 오류를 수정하기 위해 프로젝트 속성의 웹 탭으로 이동하여 "Visual Studio 개발 서버 사용"및 "포트 자동 할당"을 선택합니다. 그 후 프로젝트를 다시 빌드하고 VS를 다시 시작해야합니다.


나는 최근에 이것을 많이 받고 있으며 새 파일을 만들고 코드를 새 파일로 이동하여 주변을 돌아야했습니다.

하지만 빠르고 쉽고 고통없는 해결책을 찾았습니다 .

내 특별한 경우에는 솔루션의 suo 파일을 삭제합니다 (IDE에서 어떤 파일이 열려 있는지와 같은 정보를 저장할 수 있으므로 삭제해도 실제 손상이 없습니다). 내 파일이 겉보기에 손상된 것 같습니다 (IDE는 다시 시작할 때 어떤 파일이 열려 있었는지 기억하지 못합니다. 한 번에 50 개 이상의 파일을 거의 열지 않는 40 개 프로젝트 솔루션에서도 크기가 1.7 메가 바이트로 보입니다).

요약하면 : VS가 닫힌 동안 .suo 파일을 삭제하면 디자이너 모드에서 winforms 파일을 여는 E_FAIL 문제가 해결되었습니다.

편집하다:

최근에 VS2017에서이 작업을 수행해야했지만 또 다른 이유로 빌드하는 데 더 오래 걸리고 디버그 세션을 중지하는 데 5 분 이상이 걸렸습니다. 성가신 suo 파일을 삭제하면 문제가 해결되었습니다. 이제 VS가 이상하게 행동 할 때마다 SUO를 삭제하는 것이 내 첫 번째 기항지.


Visual Studio 2019의 C ++ 프로젝트에서 동일한 문제가 발생했습니다.

다음 솔루션이 저에게 효과적이었습니다.

  • Visual Studio를 닫습니다.
  • 프로젝트의 루트 폴더로 이동하여 .vs 디렉토리를 삭제하십시오.
  • Visual Studio를 시작하고 솔루션을 엽니 다.
  • 이제 빌드가 작동합니다.

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- 컴포넌트

참조를 제거했는데 제대로 작동합니다.


죽은 스레드를 되살려 서 죄송하지만 VS2017에서 프로젝트 템플릿 캐시 및 항목 템플릿 캐시 폴더를 삭제하여이 문제를 해결했습니다.

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

그런 다음 다음을 통해 Visual Studio 설정을 재설정합니다.

Tools>Import and export settings>reset all settings

또한 "모든 프로젝트에 대한 경량 솔루션로드"를 끄는 것도 도움이 될 수 있습니다.


어쩌면 이 페이지가 도움이 :

시나리오 2 : 웹 응용 프로그램 프로젝트를 만들거나 디버깅하는 동안 Microsoft Visual Studio 2010 IDE가 충돌합니다. 위의 오류는 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하여 캐시를 다시 빌드하십시오.


도! 다른 사람이 IIS 웹 사이트에 연결하려고 할 때이 오류가 발생하는 경우.

호스트 이름이 올바른지 세 번 확인하십시오. http://my.testsite.com 에서 '/'를 잊어 버렸습니다 .

내가 한 것처럼 Visual Studio를 다시 설치하기 전에 이것을 시도하십시오 .. 끔찍한 오류 메시지 ..


이것은 내 문제를 해결했습니다.

시작 —> 실행 —> regsvr32 %SystemRoot%\System32\msxml3.dll

시작 —> 실행 —> regsvr32 %SystemRoot%\SysWOW64\msxml3.dll

이 전에 Simon의 위의 솔루션을 시도했지만 저에게 효과가 없었습니다!

아마도이 두 솔루션을 결합하면 효과가있을 것입니다!


VS2013에서 VS2015로 업그레이드 한 후에도 동일한 문제가 발생했습니다.

내가 일하고 있던 프로젝트는 그 자체를 참조했습니다. VS2013은 신경 쓰지 않았지만 VS2015는 그것을 좋아하지 않았고 그 오류가 발생했습니다. 참조를 삭제 한 후 오류가 사라졌습니다. 그걸 알아내는 데 약 4 시간이 걸렸습니다 ...


위의 모든 솔루션을 시도했지만 아무것도 작동하지 않았으며 여기 에서 해결책을 찾았습니다 .

  • 다음으로 이동하여 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' 
    
  • 그런 다음 gacutilVS Cmd 프롬프트 (관리자 모드)를 통해이 명령을 실행합니다 .

    1. 로 이동

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


특정 버튼을 클릭하면서 다른 폴더를 여는 간단한 프로그램을 작성했습니다. 배포를 위해 파일 속성을 "content"와 "copy if newer"로 만들었습니다. 따라서 다른 소프트웨어에 exe 파일을 설치하면 실제로 모든 리소스를 설치하고 프로그램을 정상적으로 실행합니다. 그래서 이것은 내 프로그램에 관한 것입니다. 가끔 개발하는 동안 프로그램을 실행하여 확인하면 오류가 발생했습니다.

"COM 구성 요소에 대한 호출에서 HRESULT E_FAIL이 반환되었습니다."

디자이너 뷰를 열 수 없습니다. 그러나 어떻게 든 나를 위해 쉬운 해결책을 얻었습니다. 다른 사람에게도 효과가 있을지 모르겠습니다.

해결책은 다음과 같습니다.

전체 응용 프로그램 폴더를 다른 위치에 복사합니다. 거기에서 응용 프로그램 파일을 클릭하십시오. 그것은 단지 사본이고 당신은 디자이너를 볼 수 없기 때문에 작동하지 않을 것입니다

  1. 솔루션 탐색기에서 form1.vb를 삭제합니다 (또는 개발 중에 변경된 경우 다른 이름 일 수 있음).
  2. 솔루션 탐색기에서> 오른쪽 클릭> 기존 항목 추가> 폴더가 복사 된 위치 (원래 위치)에서 Form1.vb 파일을 찾습니다.
  3. 새 위치에서 프로그램을 실행하십시오. 작동합니다

이 솔루션의 문제는 무언가를 추가하고 프로그램을 실행 한 후 동일한 오류를 발견하면 전체 응용 프로그램 폴더를 다시 다른 위치에 복사하고 위의 단계를 따라야합니다.


최신 Windows 10 SDK를 설치 한 후 오류가 발생했습니다. SDK 8.1을 사용하여 C ++ 프로젝트를 빌드하는 동안 오류가 발생했습니다. 프로젝트 속성에서 최신 10 SDK로 전환합니다. 재건. 작동했습니다. 8.1로 다시 변경되었습니다. 재건. 오류가 없습니다.


Visual Studio 2017에서 참조 추가 대화 상자를 표시하려면 Microsoft.VisualStudio.Shell.Interop.11.0.dll을 GAC에 등록해야합니다. 다음 단계에 따라이 어셈블리를 GAC에 등록 할 수 있습니다.

VS2017 용 개발 명령 프롬프트를 엽니 다 (관리자로 실행해야합니다. 그렇지 않으면 GAC 등록이 실패 할 수 있음)

Visual Studio 2017 설치를 위해 현재 디렉터리를 PublicAssemblies 폴더로 변경합니다. 내 것은 :

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


문제 해결 단계 :

1. VS 2012에서 관리자 모드로 솔루션 / 웹 응용 프로그램을 엽니 다.

2. IIS로 이동하여 응용 프로그램의 설정 (예 : 가상 디렉터리 이름, 물리적 경로, 인증 설정 및 사용 된 앱 풀)을 기록해 둡니다.

3. 기본 웹 사이트에서 응용 프로그램을 제거 (마우스 오른쪽 버튼으로 클릭하고 제거 선택)합니다. IIS를 새로 고칩니다.

4. VS 2012로 돌아가 웹 애플리케이션의 설정을 엽니 다 (마우스 오른쪽 버튼을 클릭하고 속성 선택).

5. Web.In Servers 섹션을 선택하여 "로컬 IIS 웹 서버 사용"을 선택했는지 확인합니다.

6. Project Url 텍스트 상자에 애플리케이션 경로 (http : // localhost/ Application Path)를 입력합니다 . Create Virtual Directory를 클릭합니다.

7. IIS로 이동하여 2 단계에서 기록한 설정을 적용합니다. IIS를 새로 고칩니다.

8. VS 2012로 이동하여이 프로젝트를 시작 페이지로 적절한 페이지를 사용하여 시작 프로젝트로 설정합니다.

9. Run 버튼을 클릭하여 디버그 모드에서 프로젝트를 시작합니다.

이로 인해 VS 2010에서 2012로 마이그레이션 된 웹 응용 프로그램에 대한 문제가 해결되었습니다. 특정 문제를 찾는 모든 사람에게 도움이되기를 바랍니다.

내 컴퓨터 구성 : IIS 7.5.7600.16385

VS 2012 전문가

Windows 7 Enterprise (버전 6.1-빌드 7601 : 서비스 팩 1)


이것은 TFS 빌드 서버에서 가끔 발생합니다 (게이트 체크인). 작업 공간 폴더에 관한 것입니다. 이유를 모르겠지만 작업 공간 폴더 액세스가 때때로 손상됩니다. 문제를 해결하기 위해 내가하는 일은 TFS 빌드 작업 영역을 삭제하고 관련 작업 영역 폴더를 삭제하는 것입니다. 그런 다음 TFS 빌드 시스템이 자체적으로 새 작업 영역을 만들고 문제가 해결됩니다.

Tousif Ahmed의 솔루션은 로컬 빌드에서 작동합니다. 응용 프로그램 폴더를 다른 위치로 복사하면 TFS 빌드 시스템에서 수행하는 것과 동일한 작업을 수행해야합니다.


필자의 경우 Visual Studio 2013의 Intellisense에서이 메시지를 발행 할 수있는 것으로 보입니다. 아래 스크린 샷은 고객 프로젝트를 처음로드 한 후 VisualStudio 2013 하단에 오류가있는 것을 보여줍니다. VS2013 "ERROR-HRESULT-E 스크린 샷

이 오류의 원인을 검색하기 시작했고 위에서 언급 한대로 user.vxproj 파일을 삭제하기로 결정했습니다. 그러나 프로젝트가 문제없이 빌드 된 것을 발견하고 프로젝트를 종료하고 다시로드 한 후 더 이상 오류가 발생하지 않습니다. 그래서 내 경우에는 프로젝트를 고객 디렉토리 트리 구조에서 로컬 개발 디스크 트리 구조로 이동하여 약간의 손상이 발생했다고 가정합니다. 여기서 핵심은 제 경우에는 문제가 일시적이라는 것입니다. 나는 아무것도하지 않았고 문제가 저절로 해결되는 것처럼 보였습니다. (아무것도 수정하지 않았으므로 일반적으로 바람직하지 않습니다.)


I recently spent about 3 hours trying to fix this issue on my ASP.NET app running on local IIS. I had 'Override application root URL' specified and I specified the url with an ending forward slash (/) such as http://my.dev.com/. If I saved the project options and came back in it would show the overrided root url as http://http://my.dev.com. Once I removed the last forward slash it started to behave ok and the error went away.


HRESULT E_FAIL has been returned from a call to a COM component

In my case, it was because i had differents projects with same GUID in my solution. (Project was created by copy/paste)


My problem manifested with opening Win10 appxmanifest file (no pun intended). Simply installing Windows 10 tools and SDK (go to New->Project->Select Windows->Install Tools) fixed it.


  1. Add on development initiated on x86 architecture or 64 bit system then it will run on 32bit system also.
  2. but if you Add on development initiated on 32 bit system and then you want to do changes on source code in 64 bit Note: if you are connected SAP Licence on server system then set the port and set server name through service manager otherwise System will give error:

Connection Context :- Retrieving the COM class factory for component with CLSID {632F4591-AA62-4219-8FB6-22BCF5F60090} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).


I fixed the same issue by deleting ComponentModelCache folder

  1. Close Visual Studio (if you haven’t done so already out of despair)
  2. Open a file explorer window and navigate toyour AppData folder. You can get there by:
    1. In the search bar, type %APPDATA%/.. and press enter
    2. Alternatively, navigate to C:\Users\\AppData
  3. Go into Local\Microsoft\VisualStudio\<version> where is 12.0 for Visual Studio 2013.
  4. Delete the ComponentModelCache folder.

From here: http://withmartin.net/how-visual-studios-component-model-cache-can-be-a-pain/


Not sure about the exact reproduction steps for the error (HRESULT E_FAIL has been returned from a call to a COM component), but the solution for me was:

  1. Close Visual Studio and Repair it through Control Panel.
  2. Restart system

After the restart, the error was gone.


I faced the same issue in Visual Studio 2017, Do follow these steps:

  1. Start —> Run —> regsvr32 %SystemRoot%\System32\msxml3.dll

  2. Start —> Run —> regsvr32 %SystemRoot%\SysWOW64\msxml3.dll

  3. Clean the Project.

  4. Restart visual studio.

    Step 1 and 2 were copied from Besnik Kastrati post.


I find this answer click Ctrl+Alt+J click (...) in the top now you can add dll from Browse , .Net or another After clicking the OK button click at (add to references in selected Project in solution explorer) (this is a green plus "+" button)


I've gone through all the different steps on how to fix this issue with VS2019 16.2.4 and the issue still remains. I certainly hope that MS fixes this issue since this has been going on for a long time.

Just above adding to Object Browser, I couldn't work out how to Add Reference dialog in this version, since I couldn't find the GAC for 2019.


Just delete packages folder.That helped me


Root Cause: Microsoft.VisualStudio.Shell.Interop.11.0.dll is missing from GAC.

Solution: 1. Go to start menu and Open Command Prompt for Visual Studio 2. Enter command gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll 3. If in case your system unable to find this dll file then you may download it from Nuget package manager and then can provide the path of dll

All set! hit enter and you're done!


I had this problem because I tried to open the SSIS Projects and test Attunity Driver for Oracle from SSDT 2013 (TFS) in SSDT 2017. In a new SSIS Project would the Attunity Driver work fine but in upgraded SSIS Project it would show the error when i try to test connection. The solution is to fix the old Project.


I just encountered this same issue. Turned out the Project URL on the Web property sheet was malformed.

방금 포트 번호를 제거하고 앞의 콜론을 삭제하는 것을 잊고 http : // localhost : / XYZ로 실행을 시도했습니다.

많은 다른 문제로 인해이 오류 메시지가 나타나는 것 같습니다.

참고 URL : https://stackoverflow.com/questions/13361199/error-hresult-e-fail-has-been-returned-from-a-call-to-a-com-component-vs2012-whe

반응형