正如标题所说,我想安装一个外部文件:
<Component>
<File Source="Application.exe.config" Compressed="no" />
</Component>
和 - 如果外部文件不可用 - 安装默认的内部文件:
<Component>
<File Source="Application.exe.default.config" Name="Application.exe.config" />
</Component>
这样可以保证,总会安装一个文件。 我怎样才能做到这一点?
澄清:通过外部我不是指CopyFile-Element。相反,我在谈论一个普通的WiX文件(如第一个Snippet中所见),它根本没有被压缩成一个cab。
答案 0 :(得分:2)
您的代码段显示MSI中的文件,而非外部文件,这是混乱。如果它在外部,它不在WiX或MSI中,您可以使用WiX CopyFile元素复制它。
我很想使用文件搜索来查看文件是否存在,并使用WiX remember属性模式存储该结果属性。例如,使您的文件组件具有传递性并以#34; NOT FILEFOUND&#34;为条件,因此如果找到外部文件,则不会安装它。然后,如果设置了FILEFOUND,则只需复制外部文件。为此,我将添加另一个只包含条件FILEFOUND的注册表项(它必须包含某些内容)的传递组件。将WiX CopyFile放在此组件中,以便在设置FILEFOUND时运行。我认为没有编写任何代码就可以做到这一点。