我有一个WiX项目,应该逐步建立。但是,每次构建Light.exe都会运行。
似乎某些跟踪文件是在名为obj\x86\Debug
的中间文件夹中创建的。一个文件:
MyProj.wixproj.BindContentsFileListnull.txt
包含对Temp文件夹中文件的引用列表,这里有一行:
C:\Users\MyUser\AppData\Local\Temp\p3qht4rl\cab_2_ConditionsInstaller\0
重建解决方案后,构建日志(详细模式)显示:
Building target "Link" completely.
Input file "C:\Users\MyUser\AppData\Local\Temp\fkzirn0a\cab_2_ConditionsInstaller\0" does not exist.
我相信因为该文件丢失,MsBuild决定它应该再次链接。这些是临时文件,所以我希望它们会消失。每次构建之后,BindContentsFileListnull.txt中的文件列表将更改为指向Temp目录的新子文件夹中的相同文件。
其他wix项目我看起来很好并且不会继续重建。
我该如何解决这个问题?
light.exe的版本是:3.10.2516.0
更新
我找到了一个构建标志LeaveTemporaryFiles。如果我设置为真正的增量构建工作正常,但临时文件(约40Mb)未清理。这并不是真的可以接受,但是在构建服务器上我们遇到了因为临时文件不断出现而导致磁盘填满的问题,所以我们依赖于一个清理它们的夜间脚本。如果需要这些文件,它们似乎应该在中间文件夹而不是临时文件夹中,但我没有看到任何重定向它们的选项。
答案 0 :(得分:0)
这似乎是WiX中的一个错误。我跟踪了这个:
与二进制wixlib链接会破坏增量构建#4060 https://github.com/wixtoolset/issues/issues/4060?_pjax=%23js-repo-pjax-container