Visual Studio Wix Project에서 WXI 파일 사용
-
03-07-2019 - |
문제
WIX 설치 파일을 포함 파일 (.WXI)을 사용하여 별도의 부품 (변수, 구성 요소 등)으로 나누는 몇 가지 소스를 발견했습니다. 나에게 완벽하게 이해되므로u003Ccomponents> .wxs 파일에서 노드를 사용하여 별도의 파일에 넣었지만 Visual Studio 2008에서 프로젝트를 컴파일하려고하면 각각에 대한 오류가 발생합니다.u003CComponentRef> 섹션 '제품 : {...}' "에서"Symbol '에 대한 해결되지 않은 참조'입니다.
나는 그것을 사용했다u003C?include "Filename"?> 내 제품에 태그가 있지만 스키마 유효성 검사를 중단하는 것 같습니다. 그것이 포함하는 방법이라면 어디 가야합니까?
내가 가진 파일은 다음과 같습니다.
제품 .WXS
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product ...>
<Package .../>
<Media .../>
<Directory Id="TARGETDIR" Name="SourceDir">
</Directory>
<Feature Id="MainProgram" Level="1">
<ComponentRef Id="ProductComponent" />
<Feature Id="ContextMenu" Level="2">
<ComponentRef Id="ContextMenuComponent" />
</Feature>
</Feature>
</Product>
</Wix>
components.wxi
<?xml version="1.0" encoding="utf-8"?>
<Include>
<Fragment>
<Component Id="ProductComponent" ...>
<File .../>
</Component>
<Component Id="ContextMenuComponent" ...>
<RegistryKey .../>
</Component>
</Fragment>
</Include>
Visual Studio에서 어떻게 구축해야합니까? 빌드를 스크립팅하는 것은 더 간단 해 보이지만 아직 내 문제는 아닙니다.
해결책
포함 파일 포함 파일은 헤더 파일로 생각해야합니다. 여러분은 여러분이 여러분이 공통 변수를 선언하는 데 사용하는 것만으로 만 사용합니다. .wxs
파일.
내 프로젝트는 제품 코드, 업그레이드 코드 등을 정의하는 ~ 10 .wxs 파일과 단일 .wxi를 사용합니다.
내가 무슨 말을하는지에 대한 더 나은 아이디어를 얻으려면 SO 질문을 확인하십시오. Wix 트릭 및 모범 사례 그리고 WIX에는 조각이 포함됩니다 또한 항상 그렇듯이 문서화 wix.chm
다른 팁
WXI 대신 WXS 확장을 사용해보십시오. 나는 광산을 깨고 WXS를 확장자로 사용했으며 방금 작동했습니다. 프로젝트의 모든 WXS 파일은 WixProj에 의해 Wix 컴파일러로 전달됩니다.
이 질문을 내 문제를 찾고있는 것을 발견했고 누군가 내가 한 곳에서 누군가가 왔을 때 수정을 추가 할 것이라고 생각했습니다.
WixProj 파일을 사용하여 Visual Studio에서 컴파일하는 경우이 프로젝트 유형이 파일 링크를 지원하지 않는 것으로 보입니다 (Exising Itment Add as As as Add). 프로젝트의 링크로 끝나지 만 컴파일하면 해결되지 않은 기호가 있다고 불평합니다.