2012-04-03 2 views
2

모든 프로젝트를 Installshield에서 Wix로 하나씩 마이그레이션하는 중이며 env 특정 파일을 다루는 가장 좋은 방법을 찾고 싶습니다.WIX를 사용하여 env 특정 파일 다루기

현재 프로세스 : InstallShield를 사용하여 기본 MSI와 현재 디렉토리에있는 파일이있는 디렉토리 구조를 설치하는 변환 파일을 만듭니다. 물론 내 소스 제어에서 다른 환경의 구성 파일을 별도로 보유하고 있으며 배포 스크립트는 올바른 파일 집합을 선택하여 준비 위치에 저장합니다. 문서 \ global.config

테스트 \ 파일 \ 문서 \

이 Sample.msi

sample.mst

테스트 \ 응용 프로그램을 다음과 같이 같은 예를 들어

는 현재 디렉토리 보인다 \ global.config

sample.msi가 설치되고 위의 디렉터리 구조가 대상 위치로 복사됩니다. 제거하는 동안 디렉토리 구조도 제거됩니다.

CopyFile 요소를 사용하여이 동작을 다시 만들려고했으나 제거하는 동안 복사 된 파일은 유지되고 제거되지 않습니다. 이것을 달성 할 다른 방법이 있습니까?

우리의 포장 방법이 우리의 요구 사항을 극복하는 최선의 방법이 아닐 수도 있습니다. 누군가 더 좋은 방법이 있다면 알려 주시기 바랍니다.

저는 아직 윅스에게 아주 익숙하지 않습니다. 그래서 나는 그 밖의 것들을 알지 못해서 윅스 확장을 보지 않았습니다.

항상 그렇듯이 도움을 주시면 대단히 감사하겠습니다.

답변

1

이 파일은 실제로 msi와 분리되어야합니까? wix를 사용하면 msi에 모든 것을 넣고 설정 속성이나 사용자 지정 작업을 사용하여 특정 조건을 기반으로 설치할 수 있습니다. 그렇게하면 msi가 디렉터리를 만들고 파일을 복사하게하고 제거 할 때 제거 할 수있게해야합니다.

조건은 다음과 같이 작동합니다 : Adding Custom Actions

당신이 WIX 툴킷 설치 한 경우 :

이 윅스에서
<Component Id='MyComponent' Guid='PUT-GUID-HERE'> 
    <Condition><![CDATA[YOUR-PROPERTY = "SOME_STRING"]]></Condition> 
<File Id='readme' Name='readme.txt' DiskId='1' Source='readme.txt' /> 
</Component> 

에서 CustomAction는 .NET dll을 할 수있다, 매뉴얼이 여기 수행하는 방법을 설명합니다 Custom Action Project을 만들어야합니다.

+0

예. 이것은 그것을하는 방법 일 것입니다. MSI에 파일을 임베딩하는 대신 다른 방법이 있는지 알고 싶었습니다. – soothsayer

+0

글쎄, 다른 방법은 CustomAction을 작성하여 네트워크에서 파일을 가져 와서 디렉토리에 저장하고 응용 프로그램이 제거 될 때 동일한 CustomAction으로 제거하는 것입니다. – shriek

+0

@Hitesh Savla : 내 대답 편집 – shriek

관련 문제