使用通配符复制多个文件/使用Wix递归复制

cal*_*e16 7 windows-installer wix wix3

我是Wix(以及一般安装人员)的总菜鸟,所以请原谅我.

我的目标是能够遍历目录,搜索所有*,例如*.exe文件并将它们复制到预定义的目标文件夹.事实是,我知道这些文件是什么以及它们的名字所以我不能在wxs文件中逐个输出它们...因此通配符.

现在,我最终得到了这样的东西:

...
<Directory Id='TARGETDIR' Name='SourceDir'>
      <Directory Id='ProgramFilesFolder' Name='PFiles'>
        <Directory Id='MyDir' Name='TestProj'>
          <Component Id='MyComponent' Guid='PUT_GUID_HERE'>
            <CopyFile Id="CopyFiles" DestinationProperty="DESTDIR" SourceName="*.exe" SourceProperty="SRCDIR" />
          </Component>
        </Directory>
      </Directory>
</Directory>
...
Run Code Online (Sandbox Code Playgroud)

好吧,如果我只是从SRCDIR阅读,这是好的,但如果有子文件夹怎么办?如何查找具有特定扩展名的文件?或者还有另一种方法吗?

安装后删除相同文件也是一样的...

非常感谢您提供任何帮助!

ste*_*nar 8

一种方法是使用John Robbin的命令行工具Paraffin.它会自动进入您选择的目录,并创建一个引用这些文件的WiX片段.Paraffin非常适用于此,因为它支持以后添加新文件而无需为旧文件创建新的GUID - 即它支持不断发展的项目.