2011-01-04 7 views
11

MSBuild (CruiseControl)를 사용하여 .NET 4 응용 프로그램의 설치를 빌드하려고합니다. 설치 빌드는 필수 구성 요소 (이 경우 .NET 4 및 Windows Installer 4.5)를 설치하기위한 부울 래퍼를 만들어야하며, 이는 GenerateBootstrapper Task을 사용하여 수행됩니다.MSBuild : 오류 MSB3147 : 'setup.bin'파일을 찾을 수 없습니다.

VS 2010이 설치된 개발 컴퓨터의 명령 줄에서 MSBuild.exe project.msbuild.xml을 실행하면 정상적으로 작동합니다. 단지, 최신 Windows 7 SDK를 가지고 빌드 머신에서 실행하면 오류와 함께 실패 :

dev에 기계에
(ProductDistributions target) -> bootstrapper.xml(236,5): error MSB3147: 
Could not find required file 'setup.bin' in '<project path>\ProductDistributions\Engine'. 

, 나는 setup.bin 파일이 들어있는 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine 폴더가 없지만, 빌드 시스템에서 더이 Bootstrapper 폴더 안에 C:\Program Files\Microsoft SDKs\Windows\v7.1 (7.1 대 7.0A는 7.0A를 설치하지만 독립 실행 형 SDK는 7.1이므로 분명히 7.0A 임).

또한, 빌드 시스템에서이 HKLM\Software\Microsoft\GenericBootstrapper\ 내부에 4.0 레지스트리 키가 없지만, dev에 기계 하나가 c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\

의 값으로 경로 문자열을 포함해야합니까 나는에 설치할 필요가있는 것 같습니다 "Microsoft SDKs \ Windows \ v7.1"(및 레지스트리 키 설정)에 Bootstrapper 폴더를 추가하기 위해 컴퓨터를 빌드하십시오. 그러나 그 내용이 확실하지 않습니다. 내가 무엇을 얻을 필요가있는 어떤 생각?

아니면 설치가 제대로 작동하는 데 필요한 다른 것이 있습니까?

업데이트 :를 나는이 수동으로 빌드 머신에 dev에 기계에서 7.0a에 부트 스트 래퍼 폴더를 복사하고, 수동으로 HKLM\Software\Microsoft\GenericBootstrapper\4.0 레지스트리 키에 해당 경로를 추가하여 순간에 작업을했다. 어느 쪽이 효과가있는 것 같지만, 문제를 해결하기 위해 내가해야 할 일이 될 수없는 것처럼 보입니다. 그래서 누군가가 덜 해킹 된 해결책을 가지고 있다면 고맙겠습니다.

+0

7.0A 부트 스트 래퍼를 복사하고 수동으로 reg 키를 추가하는 위의 변경으로 인해 내가 가진 문제가 해결되었습니다. 그래도 덜 해킹 된 솔루션을 찾고 있습니다. – IndigoDelta

+2

그 컴퓨터에 .Net 4.5 베타 버전을 설치 했습니까? 워크 스테이션에서 완전히 4.5 (모든 프로그램을 추가/제거 할 때 4.5 및 VS11 참조)를 제거하고 MSDN에서 4.0을 다시 설치할 때까지 비슷한 워크 스테이션에서 문제가 발생했습니다. –

+0

아니요,이 질문은 2011 년 1 월에 나온 것이므로 4.5 베타 버전이 출시되기 전에는이 질문이있었습니다. – Wilka

답변

4

t his blog entry에 따르면 부트 스트 래퍼 파일은 .NET Framework SDK 설치 중에 설치됩니다. 또한 부트 스트 래퍼 디렉토리를 찾기 위해 검색되는 레지스트리 항목을 표시합니다.

.NET Framework SDK를 설치하거나 파일을 복사하고 레지스트리 항목을 추가하여 수동으로 설정할 수 있습니다.

+1

흠, 빌드 컴퓨터에 .NET SDK와 Windows SDK (이미 설치해야 함)가 있지만 어쨌든 재설치를 시도했지만 문제가 해결되지 않았습니다.파일 복사 만 고려했지만 다른 문제가 발생하는지 확신 할 수 없었습니다. 모든 dev 컴퓨터에 7.0A가 있고 빌드 컴퓨터가 7.1이므로 7.0A 복사가 작동하지 않을 수 있습니다. 나는 무슨 일이 일어날 지 짐작할 것입니다. – Wilka

+1

그게 효과가있는 것 같지만 잘못된 해결책이라고 느낍니다. 누군가 해커가 덜 해악해질 때를 대비하여이 대답을 받아들이 기 전에 조금 기다릴 것입니다. 고마워, 나는 이제 다시 건물을 짓는다. – Wilka

+0

더 많은 참조 : [이 블로그] (http://jake.ginnivan.net/clickonce-bootstrapping-errors/)는 어떻게 든 윈도우가 파일에 대한 참조를 잃어버린 것을 보여줍니다. 따라서 레지스트리 키를 추가하고 엔진 폴더를 프로젝트 폴더에 복사하면이 문제가 해결됩니다. –

2

동일한 문제가 발생했지만 수동으로 파일을 복사하고 레지스트리 해킹을 시도하지 않았지만 다른 사람도이 작업을 성공적으로 수행했다고 들었습니다.

이보다 실질적인 솔루션을 얻으려면 Visual Studio의 최소 설치 유형을 구현하기 위해 feature request on the Connect.Microsoft.com site을 작성하여 필요한 개발 파일로 빌드 서버를 설정하는 쉬운 방법을 제공하십시오. 이 문제에 관심을 갖도록 기능 요청에 대해 투표 및/또는 의견을 말하십시오.

관련 문제