如何在wix源路径中使用空格?

时间:2009-11-27 23:49:15

标签: file wix whitespace spaces

wxs文件的File标签Source属性;路径中有一个空格。

<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:系统找不到类型为“Source”的文件'和'。

我不能确定我的路径中没有空格。如何在源路径中支持空格?

2 个答案:

答案 0 :(得分:6)

尝试upgrading到最新的稳定wix版本。我使用Wix 3.0.5419.0对此进行了测试,并且接受了带空格的文件路径。

相关说明:文件元素不应包含示例中的绝对路径,因为您只能在单个开发人员的PC上构建设置。改为使用相对于wxs文件位置的路径,如下所示:

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

或者使用包含文件位置的变量,如下所示:

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

然后,您可以通过调用这样的蜡烛来传递bin文件夹的位置:

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

编辑:如Rob在他自己的回答中所示,您还可以使用light.exe -b开关指定一个或多个可以找到要安装的文件的基本目录。

答案 1 :(得分:4)

@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”),则可以将其保留。