首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET: AssemblyVersionAttribute中的大修订号

.NET: AssemblyVersionAttribute中的大修订号
EN

Stack Overflow用户
提问于 2009-07-27 21:55:29
回答 5查看 19.5K关注 0票数 39

我们有将构建版本控制为major.minor.micro.revision的约定,例如2.1.2.33546。

我们的构建脚本会自动更新包含以下内容的AssemblyInfo.cs文件

代码语言:javascript
复制
[assembly: AssemblyVersion("x.y.z.w")]

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

但是我们的Subversion-repository刚刚达到了版本#65535,这破坏了我们的构建。

结果是,版本号中的每个数字都有一个最大值65534 (可能是由于Windows的限制)。

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

我们喜欢嵌入修订号的方案,显然我们不能只重置我们的Subversion-server :-)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-27 14:12:12

更多的背景信息:

Why are build numbers limited to 65535?

由于这一点不太可能更改,因此您的选择如下:

  • 将修订版取模65535,这意味着您将返回到1
  • 使用版本号中的微字段通过将修订版本号除以1000来拆分版本号。这意味着您的版本可能是1.0.65.535
  • 不将SVN版本存储在AssemblyVersion中,而是存储在AssemblyInformationalVersion中。这样,您的应用程序仍然可以访问它的显示目的,虽然您不能再使用Windows资源管理器来快速检查SVN修订
  • 不存储在AssemblyVersion中的SVN修订,而是在AssemblyProduct或AssemblyDescription字段。同样,这样您的应用程序仍然可以访问它,而且资源管理器现在将在属性页中显示它。
票数 45
EN

Stack Overflow用户

发布于 2009-07-27 13:59:12

一种选择可能是只使用[AssemblyFileVersion];这仍然会发出警告,但它至少会构建:

代码语言:javascript
复制
[assembly: AssemblyFileVersion("1.0.0.80000")]
票数 11
EN

Stack Overflow用户

发布于 2009-07-27 14:10:01

我们决定使用相同的约定,并且由于Windows版本号的限制,我们选择删除版本号中的“微”部分,以便保留修订号。我们的版本号现在是[major].[minor].[revision / 10000].[revision % 10000],因此从修订版65535构建的程序集的版本是2.01.6.5535。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1188284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档