2012-04-03 3 views
1

WiX에 대한 질문이 있습니다. 하지만 먼저 상황을 설명해 드리겠습니다. VS2010 솔루션이 있고 WiX (봉헌) 프로젝트를 추가하여 설치 프로그램을 만들었습니다. TFS 빌드 서버에이 설치 프로그램을 빌드하고 있습니다. 불행히도 내 모든 파일 (* .dll, * .sql, * .msi, * .whatever)은 동일한 출력 경로에 맹목적으로 복사됩니다! msi, bat 및 sql 파일을 별도의 폴더로 이동하기 위해 Movebuild 대상을 Setup.csproj 파일에 추가했지만 불행히도 TFS 빌드에서는이 작업을 수행하지 않습니다.빌드 드롭 경로에서 WiX 출력의 폴더 만들기

여기에 문제가 있습니다 (imho) : 봉헌에서 내가하는 일은 초기 단계입니다. 나는 폴더를 만들고 파일을 옮길 수 있지만, csproj 파일에 쓰는 것은 TFS가 모든 바이너리를 무작위로 추출하여 드롭 위치에 넣기 전에 수행됩니다.

는 내가 해결하기 위해 노력하는 방법 :
  1. 내가 움직임에 대한 wix2010.targets 파일을 검색하거나 위치를 을 명령을 복사합니다.은 build_drop으로 이동되었지만 찾을 수 없었습니다.
  2. 빌드 프로세스 템플릿을 살펴 봤지만 언어 또는 구문에 대해 잘 모릅니다. 거기에 관련이 있습니까?
  3. 빌드 기본값의 빌드 정의에서 "이 빌드는 출력 파일을 드롭 폴더에 복사합니다"확인란에 드롭 위치를 추가해야합니다. 내가 여기서 바꿀 수 있는게있어?

내 질문 : WiX 설치 파일로 하위 폴더를 만들고 TFS 빌드에서 특정 파일을 어떻게 옮길 수 있습니까?

도와 드리겠습니다. 미리 감사드립니다.

답변

1

어디서 파일을 가져 와서 어디서 파일을 가져올 수 있는지 알아야한다면 설치 프로그램에 config.wxi 파일을 추가하여 소스 파일의 위치를 ​​지정하십시오. 이 here에 대한 자세한 내용을 볼 수 있습니다. 이 방법을 사용하면 설치 프로그램 컴파일시 config.wxi를 수정하여 새 빌드 위치 또는 드롭 위치를 가리켜 야 할 수 있습니다. MSBuild에 익숙하다면으로 WiX.wxi 파일을 쉽게 수정할 수 있습니다. 또한 스크립트를 작성하여 빌드를 실행하는 빌드 정의에서 스크립트 또는 빌드 태스크를 실행해야합니다.

팀 빌드 2010을 사용 중이고 빌드 프로세스 중에 파일과 폴더 만 복사하려는 경우 빌드 프로세스를 실행하는 .xaml 팀 빌드 정의를 수정해야합니다. Ewald Hofman은 Customizing Team Build definitions에 관한 훌륭한 시리즈를 썼습니다.

1

나는 당신의 질문을 따르지 모르지만 나는 당신이 DLL/EXE/et all과 MSI가 모두 하나의 디렉토리에 보관된다는 불평을하고 있다고 생각합니다. 그래, 나는 이것도 싫어한다.

내가하는 것은 응용 프로그램, 병합 모듈 및 설정이라는 솔루션 플랫폼을 만드는 것입니다. 그런 다음 TFS에 다음을 빌드하도록 알립니다.

릴리스 | 신청서 릴리스 | 병합 모듈 (옵션, 빌드 할 필요가 없음) 릴리스 | 설정

이 내 DLL/모든 원인 EXE/내 병합 모듈의 모든 모듈 \ 출시와 내 MSI 병합 \에 보관 해제 \ 설정 \에 보관하는 응용 프로그램 \ 릴리스 \에 보관하는 내용

이것은 나를 위해 잘 작동합니다.

관련 문제