1

我们(有时!)必须为我们的产品发布热修复程序,并通过直接重新发布受影响的文件而不是使用新的安装程序来做到这一点。该产品有大量的代码,一些托管代码,一些非托管。

目前,构建工件(exes、dlls)的开发标志需要在热修复中发布。我们希望能够通过将它们与之前的构建进行比较来自动识别它们。一个简单的二进制差异不起作用,因为所有文件的版本号都已更改,因为如果是构建的一部分,则使用新编号标记文件。

是否有任何工具可以进行更智能的比较并决定应包含哪些文件?我们仍然会让开发人员检查列表,这更多是为了捕获开发人员没有想到的文件,而不是相反。

(注意:更改热修复/构建过程不是一个直接的选择,我们是否应该发送单个文件是一个不同的讨论!)

4

1 回答 1

1

这些是我看到的选项:

  • 在您的构建机器上获取已更改文件的报告,并使用文件路径的目录结构来确定哪些 dll 真正被更新。不确定这是否违反了您的“无构建过程更改”规则。

  • 如果您想等到构建完成后,我建议您使用二进制文件差异工具,例如http://www.romeotango.com/Downloads/FileCompReadMe.txt。使用它,您可以取回一组差异,因此您只需要获取使用该工具的脚本来忽略由于版本号而发生的差异。您可以通过使用受控场景来确定版本号的显示模式,在该场景中,您知道两个二进制文件除了版本号之外是相同的,并注意不同之处。对您的一些 dll 执行此操作,并希望出现足够的模式以便您可以编写脚本。

于 2008-10-31T15:58:43.987 回答