Как мне работать с пробелами в моем исходном пути wix? - PullRequest
6 голосов
/ 28 ноября 2009

wxs файл атрибут источника тега файла; путь содержит пробел.

<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: Системе не удается найти файл 'и' с типом 'Источник'.

Я не могу быть уверен, что в моих путях не будет пробелов. Как мне поддержать пробелы в исходном пути?

Ответы [ 2 ]

6 голосов
/ 28 ноября 2009

Попробуйте обновить до последней стабильной версии wix. Я протестировал это с Wix 3.0.5419.0, и пути к файлам с пробелами принимаются без ошибок.

Примечание: элементы файла не должны содержать абсолютные пути, как в вашем примере, потому что вы сможете создать установку только на одном компьютере разработчика. Вместо этого используйте пути относительно расположения файла wxs, например:

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

Или используйте переменную, которая содержит расположение файлов, например:

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

Затем вы можете передать местоположение папки bin, вызвав свечу так:

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

edit : как показал Роб в своем ответе, вы также можете использовать ключ light.exe -b, чтобы указать один или несколько базовых каталогов, в которых можно найти файлы для установки.

4 голосов
/ 30 ноября 2009

@ wcoenen предоставляет один механизм. Однако я предпочитаю использовать ключ light.exe -b. Тогда ваш код может выглядеть так:

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

и ваша командная строка для light.exe будет иметь:

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

Вы можете использовать несколько ключей -b и значительно снизить сложность атрибута Source.

Кроме того, File / @ Id и File / @ Name могут быть пропущены, если вы обнаружите, что они по умолчанию имеют имя файла (в данном случае «EDS_UserImport.xls»).

...