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 : error CNDL0103 :系统找不到文件“和”类型为“CNDL0103”。
我不确定我的道路上不会有空位。如何支持源路径中的空间?
发布于 2009-11-28 12:51:59
尝试升级到最新的稳定wix发行版。我用Wix3.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开关来指定一个或多个基本目录,在其中可以找到要安装的文件。
发布于 2009-11-29 13:01:45
@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属性的复杂性。
此外,如果文件/@Id和File/@Name默认为文件名(在本例中为"EDS_UserImport.xls"),则可以停止使用它们。
https://stackoverflow.com/questions/1811035
复制相似问题