31

我正在尝试在我的项目中设置我的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。

更新 >>> 抱歉,这似乎在另一篇文章中得到了回答……请投票关闭它,谢谢。

4

1 回答 1

66

您假设问题出在这一行:

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

当它实际上是这个时:

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

就像您所说的问题的公认答案不是这个问题的重复一样:

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

*语法仅适用AssemblyVersion属性。它不适用于该AssemblyFileVersion属性。

有两种解决方法可以在此处实现您可能想要的结果:

  1. 完全省略该AssemblyFileVersion属性。这将导致程序集文件版本信息自动从属性(AssemblyVersion是支持语法的属性)中推断出来。*

  2. 摆脱大炮并安装Build Version Increment 插件,它为您提供了比您动摇的更多的版本增量选项。

于 2013-03-19T17:13:13.627 回答