2012-03-30 73 views
2

我正在Wix项目中使用HeatDirectory任务来获取一些文件。我还希望在HeatDirectory 目录参数中使用符号链接,以便始终使用快捷方式指向的文件夹。但是,这个符号链接看起来不太舒服,所以我试图通过在收集文件之前复制文件来创建解决方法。WiX HeatDirectory任务指向符号链接

<Exec Command="xcopy \\myFileServer\Shortcut2LatestFiles\*.* c:\mytmp" ContinueOnError="true"/> 
<HeatDirectory OutputFile="files.wxs" Directory="c:\mytmp" 
(... some more parameters ...) /> 

不幸的是,这种解决方法不起作用,因为xcopy不能解析符号链接。 无论如何,我不是很高兴它,并希望热直接使用快捷方式。有没有办法做到这一点?

编辑:缺少的部分实际上是引号,像阿列克谢建议 - 在XCOPY部分工作,如果我使用

<Exec Command="xcopy &quot;c:\TestFolderSymlink&quot; &quot;c:\testtarget\&quot; /y" /> 

滑稽的是,他们似乎并没有在命令行上是必要的。

编辑2:使用引号,在热目录任务中直接使用符号链接也是可能的。但是,请注意,我在这里使用的是符号链接(由mklink创建,部分信息为here),而不是快捷方式(.lnk-File)。其实快捷方式不会以这种方式工作。

+0

你会得到什么错误?从'xcopy',从'heat'? – 2012-03-31 07:05:38

+0

xcopy在从命令行触发时正在工作,但在像上面那样调用时显示“file *。* not found”。我会尽快创建一个示例项目,只要我找到时间。 – ChriPf 2012-04-01 18:06:27

+1

尝试在目录周围添加引号'"',可能有助于... – 2012-04-01 19:20:58

回答

0

评论回答了上述问题,但在此处回答,因此问题脱离wix标记的未答复列表。

当您的路径包含空格或符号链接时,请务必引用路径。几乎在所有情况下,引用路径通常都是一个好主意。注意在XML,你可以在“外面”使用单引号对“内部”喜欢使用双引号:

<Exec Command='xcopy "c:\TestFolderSymlink" "c:\testtarget\" /y' /> 

这往往是在&quot;语法更具可读性。