.net 为什么自动增加版本号?

.net 为什么自动增加版本号?,.net,tfs,.net,Tfs,问候,这不是关于版本的问题,而是关于:为什么自动递增生成版本号的一般性讨论?它有什么实际用途吗 比如说,我在一个月前输入了代码,假设版本是1.0.0.0 今天我重新构建了它,同样的旧代码,但版本是1.0.123.0 对我来说,与一个月前相比,它是相同的旧组件,但为什么不同呢 依我看,版本号只有在代码更改或任何会影响代码行为的更改时才会自动更改 ps:要设置TFS,仔细考虑这一点,这一切都取决于您增加版本号的标准。大多数人坚持在每个构建规则中使用增量,因为增量是最容易实现的,但您可以使用不同的规则

问候,这不是关于版本的问题,而是关于:为什么自动递增生成版本号的一般性讨论?它有什么实际用途吗

比如说,我在一个月前输入了代码,假设版本是1.0.0.0

今天我重新构建了它,同样的旧代码,但版本是1.0.123.0

对我来说,与一个月前相比,它是相同的旧组件,但为什么不同呢

依我看,版本号只有在代码更改或任何会影响代码行为的更改时才会自动更改


ps:要设置TFS,仔细考虑这一点,这一切都取决于您增加版本号的标准。大多数人坚持在每个构建规则中使用增量,因为增量是最容易实现的,但您可以使用不同的规则。 选择一个版本控制标识符(如变更集编号或提交Sha)会很好,但实际上不可能使用它们,除非在描述性的地方,如

也就是说,只有在代码发生变化时才增加版本号是可行的,但这需要一定的努力,而且很快就会变得困难。例如


  • 您如何知道代码已更改
  • 构建成功后,您在哪里存储版本号
  • 您跟踪装配级别或每个产品/包装的编号
  • 不同的分支具有相同的版本号
我在一系列文章(、和)中描述了MSBuild/TFS技术。您可以看到它的主要缺点:版本号在构建服务器上实时存在;如果您丢失了机器,您必须手动恢复序列号


你可以在网站上找到其他有趣的想法。在这里,该工具根据提交历史计算版本号。

嗯,有人(或某人)正在设置版本号,程序集清单文件是什么样子的?我个人认为应该始终明确指定前导三元组。
AssemblyVersion
属性内容是什么样子的?(另请参见。)您好,这不是关于版本的问题,而是一个一般性的讨论,我会加以区分:保持相同的AssemblyFileVersion(因为从技术上讲,它是相同的源(希望是相同的工具-可能在这里有增加的原因)),但是,通过将类似于当前日期/时间戳的内容放入AssemblyInformationalVersion中来标记实际上是重建的事实。无论出于何种原因,此线程被否决,都可以将其删除,因为我不再需要为tfshow操心。您知道代码已更改吗?->我们可以依赖于源代码控制,无论何时提交chk in,只要假设涉及到更改即可。好的源代码管理应该能够检测到中的chk与存储库有差异,如果没有更改,应该只忽略提交,因此没有版本增加。文章中详细介绍了这一点:您只获得更改的文件,并利用MSBuild smartness仅重建所需的内容。