我正在尝试在项目中设置AssemblyVersion
和AssemblyFileVersion
属性,如下所示:
[assembly: AssemblyVersion("3.0.*")]
[assembly: AssemblyFileVersion("3.0.*")]
但是我收到了这个警告:
CS1607:程序集生成 - 为“文件版本”指定的版本“3.0。*”不正常 'major.minor.build.revision'格式
在MSDN的AssemblyVersionAttribute 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版。
更新>>>对不起,这似乎在其他帖子中得到了解答...请投票关闭它,谢谢。
答案 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
属性。
有两种解决方法可以实现您可能需要的结果:
完全省略AssemblyFileVersion
属性。这将导致程序集文件版本信息自动归结为AssemblyFileVersion
属性( 支持AssemblyVersion
语法的属性)。
打破大枪并安装Build Version Increment add-in,它提供了比你可以动摇的更多版本增量选项。