2009-11-27 2 views
6

wxs file File 태그 원본 속성. 경로에 공간이 있습니다.내 소스 경로에서 공백을 어떻게 사용합니까?

<File Id="_uploads.UserImport.EDS_UserImport.xls" Name="EDS_UserImport.xls" Source="C:\Documents and Settings\kle\Desktop\OspreyMSIGenerator\OspreyMSIGenerator\Published\EDSContainer\uploads\UserImport\EDS_UserImport.xls"></File> 

는이 오류를 얻을

candle.exe : 오류 CNDL0103 : 시스템 파일 '과'유형 '소스'를 찾을 수 없습니다.

내 경로에 공백이 들어 가지 않을지 확신 할 수 없습니다. 소스 경로에서 공백을 어떻게 지원합니까?

답변

6

upgrading을 최신 stable wix 릴리스로 시도하십시오. 필자는 Wix 3.0.5419.0을 사용하여 이것을 테스트했으며 공백이있는 파일 경로는 오류없이 허용됩니다.

관련 참고 사항 : 단일 개발자의 PC에서만 설정을 빌드 할 수 있기 때문에 파일 요소에 예제와 같이 절대 경로가 없어야합니다.

<File Source="$(var.BinFolder)foo.exe" /> 

당신은 다음을 전달할 수 있습니다

<File Source="..\bin\foo.exe" /> 

을 또는이 같은 파일의 위치를 ​​포함하는 변수를 사용합니다 : 다음과 같이 대신 WXS 파일의 위치를 ​​상대 경로를 사용하여

candle.exe -dBinFolder=c:\someFolder\bin\ foo.wxs 

편집 : 다음과 같이 촛불을 호출하여 bin 폴더의 위치를 ​​자신의 대답에 롭 같이, 당신은 또한 light.e을 사용할 수 있습니다 xe -b 스위치를 사용하여 설치할 파일을 찾을 수있는 하나 이상의 기본 디렉토리를 지정합니다.

4

@wcoenen은 하나의 메커니즘을 제공합니다. 그러나 light.exe -b 스위치를 사용하는 것을 선호합니다.

-b "C:\Documents and Settings\kle\Desktop\OspreyMSIGenerator\OspreyMSIGenerator"

가 여러 -b 스위치가 크게의 복잡성을 줄일 수

<File Id="_uploads.UserImport.EDS_UserImport.xls" Name="EDS_UserImport.xls" Source="SourceDir\Published\EDSContainer\uploads\UserImport\EDS_UserImport.xls"></File>

및 light.exe 당신의 명령 줄 것이다 : 다음 코드는 다음과 같다 수 있습니다 원본 속성

또한 File/@ Id 및 File/@ Name은 파일 이름을 기본값으로 사용하는 경우에는 무시할 수 있습니다 (이 경우 "EDS_UserImport.xls").

+1

+1은 모든 것을 훨씬 덜 복잡하게 만듭니다. 불행히도 WiX 설명서는 Lightb 용 -b와 File/@ Source의 "SourceDir"사용 사이의 링크를 설명하는 것으로 나타나지 않습니다. – saschabeaumont

+0

"SourceDir"에 대해서는 정말 혼란 스럽습니다. 3 가지 의미가 있습니다 : 1)'''에서 사용하는 마법 값 2) 설치 패키지가 들어있는 폴더를 가리 킵니다 3) "로 사용할 수있는'light.exe -b'로 설정된 특수 값. 아! –

+1

처음 두 개는 같은 것입니다. 세 번째 옵션은 Source가 상위 디렉토리 요소와 File/@ Name의 값을 상속하므로 SourceDir을 사용합니다. 많은 사람들이 기본값을 사용하는 대신 항상 File/@ Source를 지정하는 습관을 가지고 있습니다. –

관련 문제