답변:
이것은 Visual Studio 2010의 알려진 문제 (경쟁 조건)입니다. 이 연결 항목을 참조하십시오 .
우리도이 문제를 겪었고 Microsoft와이 문제에 대해 매우 불만족스러운 지원 전화를 받았습니다. 간단히 말하면 알려진 문제이며 해결되지 않을 것이며 Microsoft는 Visual Studio 설치 프로젝트 (.vdproj)에서 벗어나는 것이 좋습니다.
처음 실패 할 때 MSI 빌드를 두 번째로 트리거하여이 문제를 해결했습니다. 좋지는 않지만 대부분의 경우 작동합니다 (오류율이 ~ 10 %에서 ~ 1 %로 감소).
Microsoft Visual Studio Installer Projects 확장을 사용하여 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로 만들 수 있습니다.
이제 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"를 실행하십시오.
나는 이것에 대해 온라인 어딘가에서 읽었고 다음과 같이 수정했습니다 (누군가가 제안했습니다) :
.vdproj 파일의 시작 부분에서 다음 행을 삭제하십시오.
"SccProjectName" = "8:"
"SccLocalPath" = "8:"
"SccAuxPath" = "8:"
"SccProvider" = "8:"
그 오류가 내 프로젝트를 배포, 빌드, 디버깅 (또는 anyting)하는 것을 막지는 못했습니다. 그리고 모든 프로젝트가 현재 구성으로 빌드되도록 설정하고 설정 프로젝트는 그렇지 않은 경우에도 발생했습니다.
VS 2017의 경우 대상 Windows 계정에서 다음 CMD 스크립트를 호출합니다.
TL; DR. 불량 DisableOutOfProcBuild.exe
에 대한 참고 사항 , VS 2017에 사용하는 Microsoft의 제공 솔루션.
DisableOutOfProcBuild.exe
설치 폴더에서 호출 할 것이라고 가정하지 않습니다 . 따라서이 .exe 파일을 복사 할 수 없습니다. (그런데 .vdproj를 빌드하려면 VS를 설치해야합니다.)DisableOutOfProcBuild.exe
현재 CMD 디렉터리가 DisableOutOfProcBuild.exe의 설치 위치로 설정된 경우에만 작동합니다.예를 들어 VS Professional 버전의 경우
CD "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild"
CALL DisableOutOfProcBuild.exe
현재 Windows 사용자의 경우 CMD 별
많은 사람들에게 아래의 생성 / 수정 HKEY_CURRENT_USER\..
이 항상 작동하거나 영구적으로 작동하는 것은 아닙니다.
이 문제를 해결하기 위해 HKEY_USERS 아래에 이상한 키를 생성 / 변경해야한다는 사실을 발견했습니다. HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild
그러나 HKCU
제안 된 수정 사항에 대해 CMD 콘솔을 사용하는 경우 HKEY_CURRENT_USER가 아닌
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
이상한 키 HKEY_USERS \ S-1-5-xx-xxxxxxxxxx-xx ...에 값이 정확히 기록 된다는 것도 발견했습니다 .
따라서 이것은 첫 번째 샷부터 영원히 작동합니다. CMD 콘솔을 사용하십시오.
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)
반면에이 코드는 HKEY_CURRENT_USER로 인해이를 실행하는 현재 사용자 계정에 대해 항상 작동합니다. 그러나 빌드 서버는 종종 전용 계정이나 로컬 시스템 등을 사용합니다.
다음과 같은 간단한 배치 파일을 빌드 작업 (Jenkins, TeamCity, CruiseControl)에 추가하여 빌드 머신에서 수정했습니다.
VS-2015 , VS-2013 , VS-2017- 커뮤니티 , VS-2017-Professional , VS-2017-Enterprise
이제 핫픽스가 여기에 업로드되었습니다.
http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=33186
여기에서 읽을 수 있습니다.
내 프로젝트를 다른 PC (VS 2010, 솔루션의 여러 프로젝트)로 옮긴 후이 문제에 직면했습니다.
이미 소스 컴퓨터에서 내 프로젝트를 빌드했지만 대상에 복사 한 후 설정 프로젝트를 빌드 할 수 없었고이 오류가 발생했습니다.
나는 열 /Debug
, 내 설치 프로젝트 루트 경로에 폴더가 있었다 MyProject.msi
그리고 setup.exe
나는 그들을 삭제하고 다시 내 프로젝트를 구축, 파일, 그것은했다. 일부 친구들에게도 효과가 있기를 바랍니다.
Visual Studio 2017은 이전에 공용 레지스트리에 저장된 정보를 새 개인 레지스트리 (C : \ Users \\ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_6de65198 \ privateregistry.bin)에 저장합니다.
VS2013 / VS2015에 대한 지침에 따라 EnableOutOfProcBuild를 추가해야하는 곳입니다.
개인 레지스트리를 업데이트하려면 Regedit를 사용할 수 있습니다.
HKEY_USERS 노드를 선택하려면 클릭하십시오.
파일> Hive로드를 선택하고 privateregistry.bin 파일로 이동합니다. 당신이 그것을 선택하면 Regedit는 이름을 묻습니다-우리가 곧 끝낼 것이기 때문에 당신이 그것을 부르는 것은 중요하지 않습니다.
이제 레지스트리 구조가 나타나고 Microsoft \ VisualStudio \ 15.0_Config \ MSBuild로 이동할 수 있습니다.
값이 0 인 새 DWORD EnableOutOfProcBuild를 만듭니다.
완료되면 하이브의 루트 (이전에 이름을 지정한대로)를 선택하고 파일> 하이브 언로드를 사용하여 분리합니다.
이제 작동합니다 : o)
내 Visual Studio 2013은 어떻게 든 실험적 이어서 EnableOutOfProcBuild에 다른 레지스트리 키를 사용하기 시작했습니다.
레지스트리 값을 설정하기 위해 배치 파일에 다른 줄을 추가하고 작동을 시작했는지 확인하기 위해 :
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
이 exe를 실행하십시오.
(Visual Studio 2017 커뮤니티 에디션)
C : \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ CommonExtensions \ Microsoft \ VSI \ DisableOutOfProcBuild \ DisableOutOfProcBuild.exe
(Visual Studio 2017 Enterprise 에디션)
C : \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ VSI \ DisableOutOfProcBuild \ DisableOutOfProcBuild.exe
좋아, 나는 얼굴이 파랗고, 얼굴이 빨갛고, 머리카락을 잃고 정신을 잃을 때 까지이 문제를 조사하고 찾을 수있는 모든 단계를 시도했습니다. :-디
Visual Studio 2017 / TeamCity에 대한 내 솔루션 은 @ it3xl 의 두 솔루션과 @ Night94의 일부 지원 의 조합 이었습니다. .
문제는 TeamCity 사용자 의 레지스트리 키 가 누락 된 것 같습니다.
DisableOutOfProcBuild.exe
따라서 내 사용자에게만 레지스트리 키가 추가 때문에 작동하지 않았습니다.따라서 솔루션은 MSBuild 이전에 TeamCity에서 명령 줄 빌드 단계로 다음을 추가하는 것이 었습니다.
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\15.0_2c79e3fe_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
이 단계가 실행되면 필요한 경우 제거 할 수 있습니다.
어느 한 쪽:
DisableOutOfProcBuild.exe
TeamCity 사용자로 실행 또는HKCU\SOFTWARE\Microsoft\VisualStudio
나열된 버전을 확인한 다음 TeamCity 빌드의 단계로 REG ADD
버전과 일치하도록 위 를 수정하십시오 (을 추가해야 함 _Config
).위의 내용은 한 번만 수행하면됩니다. 문제가 다시 발생하면 TeamCity를 비활성화하여 참조 용으로 남겨 둘 수 있습니다.
1 단계 : " EnableOutOfProcBuild " 라는 이름으로 DWORD 키를 만들고 아래 경로 에서 값을 " 0 "으로 설정했습니다.
“HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild”
참고 : 프로젝트를 빌드하려는 동일한 사용자로 로그인했는지 확인하십시오.
나를 위해 잘 작동합니다.
오늘이 문제가 발생했으면 Visual Studio를 다시 시작해보십시오. 그렇지 않으면 새 프로젝트를 만들고 저장 한 다음 문제 프로젝트에서 파일을 복사하십시오. 두 가지 방법 모두 나를 위해 일했습니다.
먼저 솔루션을 정리하고 솔루션을 빌드 한 다음 설치 프로그램을 빌드하십시오. 오류를 제거합니다.
elegant solution
요지로), 이럴.