dll的FileVersion和ProductVersion有什么区别?dll的FileVersion和ProductVersion有什么区别?
具体在运行时,是用于强绑定还是其他信息?
我想有一个手动设定,以及其他自动递增(通过我们的CI构建过程)
编辑:理查德回答我原来的问题错过了一部分。它是我想要手动控制的汇编版本(随界面更改而递增),而它是文件版本,我希望我的CI系统在每次构建时自动增加。谢谢。
dll的FileVersion和ProductVersion有什么区别?dll的FileVersion和ProductVersion有什么区别?
具体在运行时,是用于强绑定还是其他信息?
我想有一个手动设定,以及其他自动递增(通过我们的CI构建过程)
编辑:理查德回答我原来的问题错过了一部分。它是我想要手动控制的汇编版本(随界面更改而递增),而它是文件版本,我希望我的CI系统在每次构建时自动增加。谢谢。
既不用于强绑定(完整/强名称的版本方面来自AssemblyVersion
属性)。
文件版本(来自AssemblyFileVersion属性)和产品版本(来自AssemblyInformationalVersion属性)均对版本资源(如资源管理器文件属性中所示)有贡献。
除了显示/诊断之外,唯一真正的用途是由安装人员验证应该替换的文件。
附录:为什么这些会不同?答:由于版本要求。保持组装版本相同意味着更新的版本(具有更高的文件版本)将不加改变地进行绑定。这对序列化有很大影响(例如持久化的工作流程)。
如果所讨论的程序集不仅仅是一个产品的一部分(例如可重用的第三方库),那么文件和产品版本可能会不同,如果只是在单个应用程序中使用,似乎没有理由不保留它们一样。
所以在实践中,我们为什么要让这三个不同呢? Imo AssemblyVersion应该规则,否? – 2009-04-15 15:33:13
@彼得:很好的问题......扩展了一些简短的评论,但是这确实需要一个自己的问题。 – Richard 2009-04-15 16:19:30
文件作为较大项目的一部分进行分发。具有单个版本版本x的文件可能作为项目版本y的一部分进行分发。
详细说明:产品版本1.1的A.exe附带文件B.dll和C.dll。所有从匹配的产品和文件版本开始。然后有人发现产品中存在严重的错误。开发人员查看它,并发出只更新B.dll的修复程序。现在产品版本也可能更新为1.1.1,以解决次要问题。而B.dll的文件版本也将是1.1.1。但A.exe和C.dll没有改变,所以他们的文件版本可能仍然是1.1。
这两者之间还有一点区别: 在文件版本中,您允许在版本部分中只使用等于或大于0的整数。
在产品版本中,您可以使用任何文本,但如果它不会解析为数字,则会产生警告,但根据msdn的警告是无害的。
现在为什么你不仅要使用版本号码?
那么,根据语义版本(semver.org)版本是这样的:。 [大] [小] [电脑]和补丁你被允许使用:
有关AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion(即程序集版本,文件版本和产品版本)的一些信息,请查看http://stackoverflow.com/a/802038。 – user276648 2012-12-11 01:56:41