Это функции GCC для программиста для предоставления подсказки компилятору о том, чем наиболее вероятное условие ответвления будет в данном выражении. Это позволяет компилятору создавать команды перехода так, чтобы наиболее распространенный случай взял наименьшее количество количества инструкций выполниться.
, Как команды перехода создаются, зависят от архитектуры процессора.
Попробуйте обновить до последней стабильной версии 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, чтобы указать один или несколько базовых каталогов, в которых можно найти файлы для установки.
@wcoenen provides one mechanism. However, I prefer to use the light.exe -b switch. Then your code can look like:
and your command-line to light.exe would have:
-b "C:\Documents and Settings\kle\Desktop\OspreyMSIGenerator\OspreyMSIGenerator"
You can have multiple -b switches and greatly reduce the complexity of your Source attribute.
Also, the File/@Id and File/@Name can be left off if you are find with them defaulting to the file name (in this case, "EDS_UserImport.xls").