god*_*iew 6 whitespace wix spaces file
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>
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
candle.exe:错误CNDL0103:系统找不到类型为'Source'的文件'和'.
我无法确定我的路径中是否有空格.如何在源路径中支持空格?
尝试升级到最新的稳定wix版本.我用Wix 3.0.5419.0测试了这个,并且接受了带空格的文件路径而没有错误.
在相关的说明中:文件元素不应包含像示例中那样的绝对路径,因为您只能在单个开发人员的PC上构建设置.使用相对于wxs文件位置的路径,如下所示:
<File Source="..\bin\foo.exe" />
Run Code Online (Sandbox Code Playgroud)
或者使用包含文件位置的变量,如下所示:
<File Source="$(var.BinFolder)foo.exe" />
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过调用这样的蜡烛来传递bin文件夹的位置:
candle.exe -dBinFolder=c:\someFolder\bin\ foo.wxs
Run Code Online (Sandbox Code Playgroud)
编辑:如Rob在他自己的回答中所示,您还可以使用light.exe -b开关指定一个或多个可以找到要安装的文件的基目录.
@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”),则可以省略它们。