developer tip

확인하는 동안 오류가 발생했습니다.

optionbox 2020. 8. 31. 07:41
반응형

확인하는 동안 오류가 발생했습니다. HRESULT = '8000000A'


자동 빌드에서 devenv를 사용할 때 잠시이 오류가 발생했습니다. 나는 찾을 수있는 모든 웹 사이트를 살펴 보았고 일반적인 답변에는 새로 고침 종속성 (수동 배포를 위해 수정했지만 자동이 아닌 것으로 생각)과 프로젝트에서 소스 제어 코딩 제거가 언급되어 도움이되지 않았습니다.

빌드 할 때마다 오류가 발생하는 것은 아니지만 매번 다른 배포 프로젝트에서 무작위로 보입니다.

누구든지 정확히이 오류가 발생하는 이유와 수정 방법에 대한 조언이 있습니까?


이것은 Visual Studio 2010의 알려진 문제 (경쟁 조건)입니다. 이 연결 항목을 참조하십시오 .

우리도이 문제를 겪었고 Microsoft와이 문제에 대해 매우 불만족스러운 지원 전화를 받았습니다. 간단히 말하면 알려진 문제이며 해결되지 않을 것이며 Microsoft는 Visual Studio 설치 프로젝트 (.vdproj)에서 벗어나는 것이 좋습니다.

처음 실패 할 때 MSI 빌드를 두 번째로 트리거하여이 문제를 해결했습니다. 좋지는 않지만 대부분의 경우 작동합니다 (오류율이 ~ 10 %에서 ~ 1 %로 감소).


Microsoft Visual Studio 설치 프로그램 프로젝트 확장을 사용하여 VS200X 설치 프로젝트를 업그레이드 한 후 VS2013 또는 VS2015에 대해이 문제가 발생한 사용자를위한 업데이트입니다.

MS의 v1.0.0.0 레시피에 따라 마침내 작동했습니다.

Microsoft Visual Studio 설치 프로그램 프로젝트

안타깝게도이 릴리스에 대한 명령 줄 문제의 모든 사례를 해결할 수는 없었습니다. 아직 문제를 해결하기위한 적절한 방법을 조사하고 있기 때문입니다. 우리가 가진 것은 거의 모든 사람들에게 효과가있을 것이라고 생각하는 해결 방법입니다. 이 문제가 계속 발생하는 경우 다음 레지스트리 값의 DWORD 값을 0으로 변경해 볼 수 있습니다. HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\MSBuild\EnableOutOfProcBuild(VS2013)
또는
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild(VS2015)
이것이 존재하지 않으면 DWORD로 만들 수 있습니다.


나는 이것에 대해 온라인 어딘가에서 읽었고 다음과 같이 수정했습니다 (누군가가 제안했습니다) :

  • 메모장 (또는 다른 텍스트 편집기)에서 설치 프로젝트 파일 (.vdproj)을 엽니 다.
  • .vdproj 파일의 시작 부분에서 다음 행을 삭제하십시오.

    "SccProjectName" = "8:"
    "SccLocalPath" = "8:"
    "SccAuxPath" = "8:"
    "SccProvider" = "8:"
    
  • 다시 빌드-오류가 사라졌습니다.

그 오류가 내 프로젝트를 배포, 빌드, 디버깅 (또는 anyting)하는 것을 막지는 못했습니다. 그리고 모든 프로젝트가 현재 구성으로 빌드되도록 설정하고 설정 프로젝트는 그렇지 않은 경우에도 발생했습니다.


2017 년 6 월 14 일 업데이트

Microsoft Visual Studio 2017 설치 프로그램 프로젝트 확장에는 이제 레지스트리 설정을 훨씬 쉽게 Microsoft Visual Studio 2017 설치 프로그램 프로젝트 를 적용 할 수있는 명령 줄 도우미 도구가 포함됩니다.

도구의 예제 경로 (설치된 Visual Studio 버전 기준)

프로페셔널 에디션 : C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe


커뮤니티 에디션 : C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe

README에서


이 간단한 도구는 사용자가 명령 줄 빌드를 사용하여 설치 프로그램 프로젝트를 빌드 할 때 나타날 수있는이 오류를 해결하는 데 필요한 레지스트리 키를 설정하는 데 도움을주기위한 것입니다.

오류 : 확인하는 동안 오류가 발생했습니다. HRESULT = '8000000A'

이 도구는 Visual Studio 2017+ 용이며 현재 사용자를 위해 설치된 특정 Visual Studio 인스턴스에 대해이 reg 키를 설정합니다. 따라서 빌드 에이전트에서이를 설정하는 경우 빌드에서 사용할 사용자 계정을 사용해야합니다.

자세한 사용법을 보려면 "DisableOutOfProcBuild.exe help"를 실행하십시오.



영구 솔루션 (빌드 머신 용 +)

비주얼 스튜디오 2017

VS 2017의 경우 대상 Windows 계정에서 다음 CMD 스크립트를 호출합니다.

커뮤니티 에디션
프로페셔널 에디션
엔터프라이즈 에디션

TL; DR. 불량 DisableOutOfProcBuild.exe에 대한 참고 사항 , VS 2017에 사용하는 Microsoft의 제공 솔루션.

  1. DisableOutOfProcBuild.exe doesn't assume you will call it out of its installation folder. So, you can't copy this .exe file. (By the way, if you want to build .vdproj, you must install VS.)
  2. DisableOutOfProcBuild.exe will only work if the current CMD directory is set to the installation location of DisableOutOfProcBuild.exe.

As an example, for VS Professional edition we must call

CD "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild"
CALL DisableOutOfProcBuild.exe


Visual Studio 2015 and earlier

by CMD for the current Windows user

For many people the creation/correction under HKEY_CURRENT_USER\.. doesn't always work or work permanently.
Trying to solve this, I found that in fact I have to create/change some weird key under HKEY_USERS HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild

But I also found that if I will be using a CMD console for HKCU with the proposed fix
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
this will write the value exactly into that weird key HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xx..., not to the HKEY_CURRENT_USER.

So, this works from a first shot and forever. Just use the CMD console.

REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
@REM (use 12.0_Config for VS2013)

Solver for Build Servers

On the other hand this code always works for a current user account which launches it (because of HKEY_CURRENT_USER). But build-servers often use dedicated accounts or Local System, etc.

I fixed it on my build-machines by adding the following simple batch file to my build tasks (Jenkins, TeamCity, CruiseControl)

VS-2015, VS-2013, VS-2017-Community, VS-2017-Professional, VS-2017-Enterprise


As pointed out in the comments here, for VS2017 you will need to create the DWORD HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\15.0_[IDKey]_Config\MSBuild\EnableOutOfProcBuild Replace [IDKey] with the ID suffix of the existing 15.0 subkey of VisualStudio.

For example, if under VisualStudio you see the key "15.0_abcd1234" it would be "15.0_abcd1234_Config".

regedit example


The hotfix is now uploaded on here:

http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=33186

you can read about it here:

http://connect.microsoft.com/VisualStudio/feedback/details/595632/inconsistent-hanging-with-devenv-2010


I have faced with this issue after I moved my project to another PC(VS 2010, multiple projects in a solution).

It was already built my project in the source computer but after I copied to target, I wasn't be able to build my Setup Project and having this error.

I opened the /Debug folder under my Setup Project root path, there were MyProject.msi and setup.exe files, I deleted them and built my project again, it worked. Hope it works for some fellas, too.


Checking the project dependencies may help.

In VS 2010 right click in your solution explorer then click Detected Dependencies and Refresh Dependencies, it sometime resolves the problem.


I am using VS 2017 but none of above solution work. So, upgraded latest version of VS 2017 and apply @AussieAsh solution and its work fine...

I hope this solution may someone will work.


with me it was caused by a wrong .suo file. ( caused by skydrive ) deleting this file solved the problem.


Visual Studio 2017 stores the information previously stored in the public registry within a new private registry: C:\Users\\AppData\Local\Microsoft\VisualStudio\15.0_6de65198\privateregistry.bin

This is where you need to add the EnableOutOfProcBuild as per the instructions for VS2013/VS2015.

To update the private registry you can use Regedit.

Click to select the HKEY_USERS node.

Select File > Load Hive and navigate to the privateregistry.bin file. When you select it Regedit will ask for a name - it doesn't matter what you call it as we will soon be done.

Now the registry structure will appear and you can navigate down to the Microsoft\VisualStudio\15.0_Config\MSBuild

Create a new DWORD EnableOutOfProcBuild with a value of 0.

Once done select the hive's root (whatever you named it earlier) and use File > Unload Hive to detach from it.

Now it should work :o)


My Visual Studio 2013 somehow became Experimental so it started using another registry key for EnableOutOfProcBuild

enter image description here

To be sure I just added another line in my batch file for setting the registry value and it started working:

REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\12.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\12.0Exp_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f

Just run this exe

(Visual Studio 2017 Community edition)

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe

(Visual Studio 2017 Enterprise edition)

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe


Okay I looked into this issue until I was blue in the face, red in the face, losing my hair, and losing my mind, and tried every step I could find. :-D

My solution for Visual Studio 2017 / TeamCity was a combination of the two solutions from @it3xl and some assistance from @Night94.

The issue seemed to be that the registry key for the TeamCity user was missing.

  • Running DisableOutOfProcBuild.exe as mentioned by @AussieAsh therefore didn't work as it added the registry key for my user only.
  • using the script mentioned by @it3xl also failed when run from TeamCity

The solution was therefore to add the following as a command line build step from TeamCity before MSBuild:

REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\15.0_2c79e3fe_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f

Once this step ran, it could then be removed if required.

Solution summary

Either:

  • run DisableOutOfProcBuild.exe as the TeamCity user, or
  • navigate to the registry key HKCU\SOFTWARE\Microsoft\VisualStudio and check the version listed, then amend the above REG ADD to match the versions (remember to add _Config) as a step in the TeamCity build.

Again the above should only have to be done once. You could disable to step in TeamCity leaving it for reference should you run into the issue again.


Had this problem today, try restarting Visual Studio, if that doesn't do it create a new project, save it and then copy the files from the problem project over. both methods worked for me.


Please clean the solution first, build the solution and than try to build the installer. It will remove the error.

참고URL : https://stackoverflow.com/questions/8648428/an-error-occurred-while-validating-hresult-8000000a

반응형