WiX 选择性修补和 C#
WiX selective patching and C#
这是一个有点假设性的问题(有待适当调查),但我相信它可能会导致问题。
C# 应用程序包含一个 exe 和一些 dll。 Visual Studio/msbuild 在每次构建时构建它们的方式略有不同(已更新 timestamps/guids/etc),但每个构建在功能上都是相同的。构建服务器处理 daily/release 构建以保持一致性并卸载工作。
已经发布了使用 WiX 打包和 bootstrap 的 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 要么失败要么以损坏的文件结束由于不正确的差异。假设。
所以问题是:如何解决这个问题?有没有一种简单的方法来管理二进制文件,以便安装程序中只包含真正的更改?比较忽略每次构建更改的二进制文件的某种方法?或者别的什么?
这是一个有点假设性的问题(有待适当调查),但我相信它可能会导致问题。
C# 应用程序包含一个 exe 和一些 dll。 Visual Studio/msbuild 在每次构建时构建它们的方式略有不同(已更新 timestamps/guids/etc),但每个构建在功能上都是相同的。构建服务器处理 daily/release 构建以保持一致性并卸载工作。
已经发布了使用 WiX 打包和 bootstrap 的 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 要么失败要么以损坏的文件结束由于不正确的差异。假设。
所以问题是:如何解决这个问题?有没有一种简单的方法来管理二进制文件,以便安装程序中只包含真正的更改?比较忽略每次构建更改的二进制文件的某种方法?或者别的什么?