2013-08-09 3 views
1

여러 app.config 파일을 처리하는 방법을 알아 내려고하고 있습니다. 각 app.config 파일은 다른 환경 용입니다.WIX 프로젝트에서 여러 App.config 파일을 어떻게 처리합니까?

현재 각 post-command (PostInstallCmd)에서 특정 app.config를 찾고 디렉토리에 넣는 .bat 파일을 실행하는 여러 .SED 파일 (각 .SED 파일은 하나의 환경을 참조 함)이 있습니다. 필요합니다. 그러나이 방법의 문제점은 설치 후 명령 프롬프트가 열리고 명령 프롬프트를 표시하지 않는 방법을 파악할 수 없다는 것입니다.

내 방식으로 여러 App.Config를 처리하는 것이 가장 좋은 방법인지 잘 모르겠습니다. 그래서 더 나은 방법이 있는지 또는 이미 가지고있는 방법에 대한 해결책을 누군가가 가지고 있는지 알아보기 위해 거기에 던져 버리는 이유입니다.

+0

msi에 여러 구성 파일이 있고 사용자 지정 동작을 사용하여 설치할 구성 파일을 선택합니까? 또는 설치/실행시 생성됩니까? – Netfangled

+0

MSI에 여러 구성 파일이 있습니다. –

답변

1

구성 파일을 별도의 구성 요소로 유지하는 경우 구성 요소에 조건 요소를 추가 할 수 있습니다.

구성 요소 조건은 CostFinalize 표준 작업 (source) 중에 계산되므로 환경에 대한 정보를 수집하기 위해 파일 비용 계산을 실행하기 전에 실행되는 사용자 지정 동작을 사용해야합니다. 당신은 내장 된 OSInfo custom actions 또는 predefined properties을 사용하여 그렇게 할 수 있습니다.

빌드 서버에 다른 이름이있는 경우 모든 구성 파일에서 동일하게 File/@Name 특성을 설정하십시오. 불행하게도 이것은 ICE30을 시작할 것입니다, 그러나 조건들이 상호 배타적이라면, 당신은 그것을 무시할 수 있습니다. 당신은 그들이 동일한 대상 경로를 가지고 있기 때문에, 구성 요소의 GUID를 지정해야합니다

<Component Guid="PUT-GUID-HERE"> 
    <Condition>VersionNT = 602</Condition> 
    <File Name="app.config" Source="config1.config" /> 
</Component> 
<Component Guid="PUT-GUID-HERE"> 
    <Condition>NOT VersionNT = 602</Condition> 
    <File Name="app.config" Source="config2.config" /> 
</Component> 

참고 :

당신의 XML은 같을 것입니다. 자동 생성 된 GUID는 둘 다 동일합니다.

관련 문제