这是一个假设的问题(等待适当的调查),但我相信它可能会导致问题。
C#应用程序包含一个exe和一些dll。 Visual Studio / msbuild在每次构建时都会略微不同地构建它们(更新的时间戳/ guids / etc),但每个构建在功能上是相同的。构建服务器处理每日/发布版本以确保一致性和卸载工作。
已经使用WiX发布v1.0.0打包和引导程序,我修复了一些问题lib_1.dll
并发布了v1.0.1。这次我还创建了一个仅包含lib_1.dll
差异的补丁,以保持文件大小不变。到目前为止一切都很好。
现在是有趣的部分。
我做了进一步的更改,但这次是lib_3.dll
,并发布了v1.0.2。我做了另一个补丁,这次只包括lib_3.dll
的差异。因此,现在将v1.0.0修补到v1.0.1,v1.0.1到v1.0.2也是如此,但是由于每个版本略有不同,v1.0.0到v1.0.1到v1.0.2都会失败或者以损坏的文件结束由于差异不正确。可以想像。
所以问题是:如何解决这个问题?是否有一种简单的方法来管理二进制文件,因此安装程序中只包含真正的更改?比较忽略每个构建更改的二进制文件的一些方法?或其他什么?