2

如果您的应用程序具有人们开发的公共 API,那么您在以下情况下会做什么?

  • 如果您发布应用程序的服务包,您会更改程序集的版本号吗?

  • 同样,如果您提供热修复,您会更改版本号吗?

如果这样做,您是否提供程序集重定向的策略文件?或者如果您不适合场景中的策略文件?我什么时候会选择不更改版本号或提供策略文件并更改版本?

4

4 回答 4

2

我们遵守规则,版本号的前三部分或多或少是营销产生的人造数字。该模式类似于“Major.Minor.ServicePack”。(服务包和热修复之间的区别只是策略。)但是最后一个数字是由构建脚本自动插入的,并保留脚本运行所在分支的最后更改的 subverion 修订。通过这种方式,我们总能找到“野外”任何二进制文件的确切代码库。

于 2009-10-27T12:57:42.790 回答
1

保持版本号不变的一个原因与强名称程序集有关。

如果您希望允许已编译的应用程序使用您更新的强名称程序集,您可能不会更改版本号,因为该应用程序将需要与编译它的程序集版本相同的版本。

这当然只有在程序集的接口没有被修改的情况下才成立。

于 2009-10-26T17:36:41.433 回答
1

如果公共 api 的方法等发生了变化,或者调用的行为发生了变化,以至于客户端可能需要重写一些使用你的 api 的代码,你只需要增加版本号。

于 2009-11-07T14:26:12.017 回答
0

微软的方式是使用Major.Minor.BuildNumber.Revision。我建议为 Service Pack 和 Hot Fixes 自动生成和使用 BuildNumber.Revision。我会手动修改并使用次要版本号来扩展 API。当以非向后兼容的方式更改内容或对功能进行重大(30% 或更多)更改或扩展时,我会手动修改和使用主要版本号。

Jeff Atwood 实际上在石器时代有一篇关于版本编号的博客文章,这里有一个关于自动增加版本号的问题,我喜欢链接Build Version Increment Add-In Visual Studio的答案。

于 2009-11-06T06:39:44.657 回答