修正了自动递增文件版本的组装版本?
我试图找到一种更有意义的方式来处理我的应用程序的版本控制,并且我遇到了这篇KB文章
http://support.microsoft.com/kb/556041
基本上它建议组装版本是固定的,并且每个版本都会增加文件版本。 现在这对我来说很合理,但对我来说,我似乎无法实现它。
下面的代码片段会自动增加Assembly版本和FileVersion。
[assembly: AssemblyVersion("1.0.*")]
虽然这下一个似乎设置1.0.0.0
的固定汇编版本和固定的文件版本1.0.*
。
[assembly: AssemblyVersion("1.0")]
[assembly: AssemblyFileVersion("1.0.*")]
顺便提一下,文件属性的“详细信息”选项卡中的“产品版本”现在也会显示1.0.*
。 现在,我可以使用此修复文件属性中的产品版本...
[assembly: AssemblyInformationalVersion("1.0")]
但这对我原来的任务没有帮助。 出于好奇,我尝试了下面的内容,并将File版本更改为2.0.*
,所以至少使用它。 这只是不自动递增。
[assembly: AssemblyVersion("1.0")]
[assembly: AssemblyFileVersion("2.0.*")]
因此,从我可以收集的自动增量的唯一版本号是组件版本,但是如果没有指定文件版本,它将被设置为与组件版本相同。
有没有人知道一种方法来自动增加文件版本,同时保持程序集版本的固定?
是的,这有点愚蠢,微软似乎弄错了方向。 AssemblyVersion
在.NET程序集版本控制系统中使用,所以您不应该自动增加它,但是AssemblyFileVersion
会写入文件版本资源中的文件版本条目中,因此您可能会合理地认为它默认情况下会始终自动增量。
我确信有一些第三方构建系统可以为你做到这一点,但我只是编写了一个命令行C#应用程序来完成它,并且它作为构建过程的一部分在每个项目上运行。 这非常简单:
AssemblyInfo.cs
文件。 RegEx
搜索AssemblyFileVersion
行,将所有四个版本部件捕获到单独的捕获组中。 你可以自己解析它,但是一个正则表达式会一次完成所有的检测和解析,所以看起来好像很愚蠢,而不是利用它。 上一篇: Fixed Assembly Version with Auto Incremented File Version?