CS1607:为'文件版本'指定的版本在.NET中不是正常的'major.minor.build.revision'格式

时间:2013-03-19 16:59:57

标签: .net warnings wildcard assemblyversionattribute

我正在尝试在项目中设置AssemblyVersionAssemblyFileVersion属性,如下所示:

[assembly: AssemblyVersion("3.0.*")]
[assembly: AssemblyFileVersion("3.0.*")]

但是我收到了这个警告:

  

CS1607:程序集生成 - 为“文件版本”指定的版本“3.0。*”不正常   'major.minor.build.revision'格式

MSDNAssemblyVersionAttribute Class页面上显示以下内容:

  

您可以指定所有值,也可以接受默认构建   使用星号(*)编号,修订号或两者。对于   例如,[assembly:AssemblyVersion(“2.3.25.1”)]表示2为   主要版本,3作为次要版本,25作为内部版本号,和1   作为修订号。 版本号如   [assembly:AssemblyVersion(“1.2。*”)]指定1作为主要版本,   2作为次要版本,并接受默认的构建和修订   数字。版本号如   [assembly:AssemblyVersion(“1.2.15。*”)]指定1作为主要   版本,2作为次要版本,15作为版本号,并接受   默认修订号。

请注意粗体部分。有谁知道为什么[assembly: AssemblyVersion("3.0.*")](来自我的项目)无效,但[assembly:AssemblyVersion("1.2.*")](来自MSDN示例)是否有效?

特别是,我很想知道我是否可以从一个非零的主要数字开始,因为我写的应用程序是该程序的第3版。

更新>>>对不起,这似乎在其他帖子中得到了解答...请投票关闭它,谢谢。

1 个答案:

答案 0 :(得分:64)

你假设问题在于这一行:

[assembly: AssemblyVersion("3.0.*")]

当它实际上是这个时:

[assembly: AssemblyFileVersion("3.0.*")]

the accepted answer to the question that you say is not a duplicate of this one说:

  

对于AssemblyFileVersionAttribute,您不能使用*特殊字符,因此您必须提供完整有效的版本号。

*语法仅使用<{1}}属性 。它不适用于AssemblyVersion属性。

有两种解决方法可以实现您可能需要的结果:

  1. 完全省略AssemblyFileVersion属性。这将导致程序集文件版本信息自动归结为AssemblyFileVersion属性( 支持AssemblyVersion语法的属性)。

  2. 打破大枪并安装Build Version Increment add-in,它提供了比你可以动摇的更多版本增量选项。