2013-07-01 3 views
1

다른 구성으로 사용할 수있는 WiX Toolset v3.7.1224.0을 사용하여 설치 프로그램을 만들려고합니다. 이미 VS2010에서 Votive로 만든 작업 설치 프로그램이 있습니다. 설치 관리자는 WixSqlExtension을 사용하여 MSSQL 데이터베이스를 만듭니다.여러 파일을 포함하는 디렉토리를 wix 프로젝트 출력 폴더에 추가하는 방법은 무엇입니까?

데이터베이스를 만들고 모든 테이블을 지정한 후에 설치 프로그램에서 일부 값으로 테이블을 초기화해야합니다. 현재이 값은 SqlString 요소로 msi로 컴파일됩니다. 이 문자열을 구성 파일에 외부화하려고합니다. 구성 파일에는 InsertTemporary() 메서드와 사용자 지정 작업의 SOURCEDIR 속성을 사용하여 SqlString 테이블에 임시로 삽입되는 문자열이 저장됩니다. 아직 구성 파일의 형식을 결정하지는 않았지만 xml 파일이나 각 SQL 문자열이 자체 줄에 있거나 자체 요소에있는 간단한 텍스트 파일이되어 파일을 구문 분석 할 수 있습니다. 파일의 각 항목에 대한 임시 레코드를 추가하십시오.

이 구성 파일을 프로젝트 구조에 통합하고 싶습니다. 프로젝트의 출력 디렉터리에 복사해야하지만 최종 사용자의 컴퓨터에 설치하면 안됩니다. 내 프로젝트에 파일을 추가 한 다음 Votive에서 파일의 고급 속성을 변경하여이 작업을 수행 할 수 있다고 생각했습니다. "Build Action"을 "Content"로 지정하고 "Output Directory에 복사"를 "Always"로 지정했습니다. 그러나 프로젝트를 빌드 할 때 파일은 프로젝트의 출력 디렉토리에 없습니다. 기껏해야 여러 개의 구성 파일을 포함하는 디렉토리를 프로젝트 출력 디렉토리에 추가 할 수 있기를 원합니다.

Votive 및 Wix에서이 작업을 수행 할 수있는 방법이 있습니까? 이것이 MSBuild에서 가능합니까? .wixproj 파일을 수정하여 디렉토리와 파일을 만들려면 어떻게해야합니까?

답변

1

실제로 해결책은 해당 프로젝트의 wixproj 파일을 수정하는 것입니다. Wix는 MSBuild를 사용합니다. MSBuild에 대한 WIX 대상에 대한 간단한 설명은 here입니다. Visual Studio에서 wixproj 파일을 편집하려면 Wix 프로젝트의 컨텍스트 메뉴를 열고 언로드하십시오. 언로드 된 프로젝트의 컨텍스트 메뉴를 열고 edit projectname.wixproj을 선택하십시오. 프로젝트가 컴파일 된 후

파일을 복사하려면 AfterBuild로 설정 Name 속성을 가진 새로운 Target 요소는 wixproj 파일의 Project 요소에 추가해야합니다. 파일을 복사하려면 출력 폴더에 복사하려는 각 파일에 하나의 Copy 요소를 지정하십시오. Target 요소 내에 Copy 요소를 넣습니다. Copy 구문 here에 대해 읽어보십시오. MSBuild를 사용하면 더 많은 작업을 수행 할 수 있으므로 reference을 살펴보십시오.