我有一个包含未压缩文件的安装程序:
<Component Id="Uncompressed">
<File Id="UncompressedFile" Vital="yes" Source="Uncompressed.dll" Compressed="no" />
</Component>
在实际安装Package之前,可以替换此文件。这意味着,构建时的版本号与安装时的版本号不同。 MSI始终包含构建时的版本。因此,文件不会更新。
我有什么可能性:
我是否可以在构建时没有实际提供文件的情况下创建安装程序?
在this related question中,有一些可能的解决方法:
REINSTALLMODE=amus
答案 0 :(得分:3)
您的流程不是最佳的。如果MSI的文件表包含的版本与您实际安装的文件不同,则可能存在多个问题。如果磁盘上的文件版本永远不会与MSI中的版本匹配,则存在修复问题的余地,尝试更正损坏的安装。当存在重大升级(或补丁)时,Windows将看到版本不匹配,并且不知道磁盘上的文件是否应该替换为升级中的新文件,因为它无法进行正确的版本比较。
我不会试图使这种情况永久化。最简单的解决方法是在替换文件时运行msifiler.exe(来自Windows SDK)来修复MSI File表版本。