1

WIX 文件中定义的所有二进制文件(.dll 和 .exe)似乎都从Product元素继承了它们的版本和语言。所有其他文件(.ps1、.txt 等)都不会继承版本,也不会在升级时被替换。我需要能够对非二进制文件进行版本控制,以便在升级时覆盖它们。在文件元素上设置DefaultVersion后,一切正常,文件在升级时被替换。


<Component Id="Eula.txt" Guid="14285C13-A70C-474B-B2AE-06F68D4E170B">
   <File Id="Eula.txt" DiskId="1" Name="Eula.txt" Source="$(var.NeutralBinRoot)\" DefaultVersion="$(var.MsiProductVersion)"/>
</Component>

但是,我在编译期间收到此警告:

警告 LGHT1103:DefaultVersion '1.1.1' 用于没有版本的文件 'Eula.txt'。
此文件的任何条目都不会放在 MsiFileHash 表中。
对于未版本化的文件,指定与实际文件不同的版本可能会导致在修复或修补期间出现意外的版本控制行为。
版本化资源以消除此警告。

什么是版本非二进制资源的正确方法?

4

1 回答 1

1

根据文档,您似乎需要使用CompanionFile属性并将其链接回原始程序集。我自己没有使用过这个,所以不能说 100% 它是否会起作用,但值得一试!

于 2012-10-10T10:24:15.427 回答