代码之家  ›  专栏  ›  技术社区  ›  Rasmus Faber

.NET:AssemblyVersionAttribute中存在大量修订号

  •  37
  • Rasmus Faber  · 技术社区  · 17 年前

    我们有一个惯例,将构建版本的版本控制为[主版本][次版本][微版本][修订版本],例如2.1.2.33546。

    我们的构建脚本会自动更新一个AssemblyInfo.cs文件,其中包含

    [assembly: AssemblyVersion("x.y.z.w")]
    

    以便在程序集中嵌入版本号。

    但我们的Subversion存储库刚刚达到修订版65535,这破坏了我们的构建。

    你遇到过这个问题吗?有什么好的解决方案/变通办法吗?

    4 回复  |  直到 17 年前
        1
  •  45
  •   Wai Ha Lee captain-yossarian from Ukraine    5 年前

    Why are build numbers limited to 65535?

    • 以65535的修订模为例,这意味着您回到了1
    • 使用版本号中的Micro字段将版本号除以1000。这意味着您的版本可能是1.0.65.535
    • AssemblyInformationalVersion . 这样,您的应用程序仍然可以出于显示目的访问它,尽管您不能再使用Windows资源管理器快速检查SVN版本
    • 不要将SVN修订存储在AssemblyVersion中,而是存储在AssemblyProduct或AssemblyDescription字段中。同样,这样您的应用程序仍然可以访问它,但现在Explorer也将在属性表中显示它。
        2
  •  11
  •   Marc Gravell    17 年前

    一种选择可能是只使用 [AssemblyFileVersion] ; 这仍然会引起警告,但至少会产生:

    [assembly: AssemblyFileVersion("1.0.0.80000")]
    
        3
  •  9
  •   Bradley Grainger    17 年前

    [major].[minor].[revision / 10000].[revision % 10000] ,因此从版本65535生成的程序集的版本为2.01.6.5535。

        4
  •  5
  •   OregonGhost    17 年前

    According to MSDN UInt16.MaxValue - 1 ,即不能在程序集文件中存储较大的数字。正如Marc Gravell所建议的那样,文件版本对您来说可能已经足够了,这取决于谁将读取您的版本号。

    推荐文章