我们将我们的构建版本化为[major].[minor].[micro].[revision],例如2.1.2.33546.
我们的构建脚本自动更新包含的AssemblyInfo.cs文件
[assembly: AssemblyVersion("x.y.z.w")]
Run Code Online (Sandbox Code Playgroud)
为了在程序集中嵌入版本号.
但我们的Subversion-repository刚刚达到修订版#65535,这打破了我们的构建.
事实证明,版本号中的每个数字的最大值为65534(可能是由于Windows限制).
你遇到过这个问题吗?有什么好的解决方案/解决方法吗?
我们喜欢嵌入修订号的方案,我们显然不能只重置我们的Subversion服务器:-)
我试图把我AssemblyVersion和AssemblyFileVersion我的项目属性,像这样:
[assembly: AssemblyVersion("3.0.*")]
[assembly: AssemblyFileVersion("3.0.*")]
Run Code Online (Sandbox Code Playgroud)
但我得到这个警告:
CS1607:程序集生成 - 为"文件版本"指定的版本"3.0.*"不是正常的"major.minor.build.revision"格式
AssemblyVersionAttribute Class在MSDN的页面上如下:
您可以指定所有值,也可以使用星号(*)接受默认的内部版本号,修订号或两者.例如,[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版.
更新>>>对不起,这似乎在其他帖子中得到解答...请投票关闭它,谢谢.
我正在向.NET应用程序添加一个About对话框,我正在查询程序集的属性以显示信息.当我尝试AssemblyVersionAttribute使用GetCustomAttribute()它来检索我的程序集时返回null:
// Works fine
AssemblyTitleAttribute title
= (AssemblyTitleAttribute)Attribute.GetCustomAttribute(
someAssembly, typeof(AssemblyTitleAttribute));
// Gets null
AssemblyVersionAttribute version
= (AssemblyVersionAttribute)Attribute.GetCustomAttribute(
someAssembly, typeof(AssemblyVersionAttribute));
Run Code Online (Sandbox Code Playgroud)
我AssemblyInfo.cs觉得很好.我定义了这些属性:
[assembly: AssemblyTitle("Some Application")]
[assembly: AssemblyVersion("1.0.0.0")]
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?我有一个解决方法,但我想知道为什么上面的代码不起作用.
// Work-around
string version = someAssembly.GetName().Version.ToString();
Run Code Online (Sandbox Code Playgroud) 假设我的版本号为1.5.*,编译为1.5.4735.28467.
获得4735和28467的公式是什么?
在assemblyInfo.cs中,我有AssemblyVersion和AssemblyFileVersion.
通常我只是像这样增加AssemblyVersion.第1位:重大更改第2位:次要更改第3位:错误修复第4位:Subversion版本号
但是,我想知道AssemblyFileVersion是什么,以及何时需要增加.它应该与assemblyVersion相同吗?
如果我不使用它,我应该评论一下吗?
非常感谢任何建议,
在WinForms中,我有一个AssemblVersion
[assembly: AssemblyVersion("01.01.01.002")]
Run Code Online (Sandbox Code Playgroud)
然而,当启动屏幕出现时,它完全忽略了显示的零:
1.1.1.2
Run Code Online (Sandbox Code Playgroud)
作为非常不方便的版本,因为后来我实际上想要一个汇编版本
[assembly: AssemblyVersion("01.01.01.200")]
Run Code Online (Sandbox Code Playgroud)
有没有办法避免这种情况或者我必须在版本的最后一部分的开头添加一些数字,如下所示:
[assembly: AssemblyVersion("01.01.01.102")]
Run Code Online (Sandbox Code Playgroud) 为什么在 Visual Studio 中构建项目不会增加构建号?
我在 AssemblyInfo.cs 中有这个:
[assembly: AssemblyVersion("1.5.*")]
Run Code Online (Sandbox Code Playgroud)
...这在 frmAbout 的构造函数中:
Version versionInfo = Assembly.GetExecutingAssembly().GetName().Version;
String versionStr = String.Format("{0}.{1}.{2}.{3}", versionInfo.Major.ToString(), versionInfo.Minor.ToString(), versionInfo.Build.ToString(), versionInfo.Revision.ToString());
lblVersion.Text = String.Format("Version {0}", versionStr);
Run Code Online (Sandbox Code Playgroud)
然而,在对代码进行更改并构建项目后(右键单击项目名称 > 构建),versionInfo 的构建部分不会增加。“关于”框中的标签来自:
Version 1.5.5465.25383
Run Code Online (Sandbox Code Playgroud)
...到:
Version 1.5.5465.25999
Run Code Online (Sandbox Code Playgroud)
为什么内部版本号没有从 5465 增加到 5466?为什么“修订版”跳了 616 个档次?后者只是一个随机值,还是源中已更改的字节数,还是什么?
那么我怎样才能让内部版本号实际增加呢?
是的,razcor 是对的,因为这显示“5465”(今天,YMWV 在此之后的任何一天):
DateTime startDate = new DateTime(2000, 1, 1);
DateTime todaysDate = DateTime.Today;
int diffDays = (todaysDate.Date - startDate.Date).Days;
MessageBox.Show(diffDays.ToString());
Run Code Online (Sandbox Code Playgroud)
并且,知道构建号(例如 5465),可以计算和显示构建日期:
DateTime computedDate = startDate.AddDays(diffDays);
MessageBox.Show(computedDate.ToLongDateString()); // shows today's date (such as …Run Code Online (Sandbox Code Playgroud) versioning revision build-process assemblyversions assemblyversionattribute
我继承了一个VB.Net代码库,它是VB 2005并升级到VB 2008,包含大约100个项目
我正在尝试重新版本所有组件,但发现一些AssemblyInfo.vb文件有一个AssemblyFileVersion条目,有些有一个AssemblyFileVersionAttribute条目.
此外,有些人有一个AssemblyVersion条目,有些人有一个AssemblyVersionAttribute条目.
有没有Attribute什么区别?
我应该使用哪些?
vb.net versioning assemblyinfo assemblyversionattribute assemblyfileversion
我在使AssemblyVersion与我正在处理的类库中的AssemblyFileVersion属性不同时遇到问题.
所以,我尝试创建一个空的(除了Class1.cs)类库,看看它是否是某个设置,但我得到了相同的行为.
看来AssemblyVersion属性似乎被忽略了.
这是我的AssemblyInfo.cs文件中的相关位...
[assembly: AssemblyVersion("0.1")]
[assembly: AssemblyFileVersion("1.1.0.9")]
Run Code Online (Sandbox Code Playgroud)
以下是Windows资源管理器中的内容...

有什么设置可以控制这个吗?
编辑: 我发现一个文件存在差异,所以不是Windows资源管理器显示两个不同字段的相同值,它与从编译器/链接器生成DLL的方式有关...

这是我想要实现的目标.我目前使用Hudson构建在远程计算机上为我做构建.我目前必须打开我的解决方案并手动更新两个文件中的[assembly:AssemblyVersion("1.2.6.190")]数字,然后在通过Hudson运行构建之前将我的更改提交到SVN.(除非你现在建立clcik,否则哈德森工作不会设置为运行)
我想找到一种方法,每次Hudson进行构建时自动增加最后一个数字.
我希望它增加1(没有时间戳或类似).
任何想法或其他材料的链接可能会有所帮助=)
谢谢,
托比
msbuild version-control hudson increment assemblyversionattribute
MyAssemblyInfo.cs在 C# 项目中,我们手动增加版本并有一个包含以下内容的顶级文件
[assembly: AssemblyVersion("31.1.13")]
[assembly: AssemblyFileVersion("31.1.13")]
[assembly: AssemblyInformationalVersion("31.1.13-V1.0.0")]
Run Code Online (Sandbox Code Playgroud)
我想避免重复该版本。例如,使用 C 预处理器,可以将其写为
#define VERSION "31.1.13"
[assembly: AssemblyVersion(VERSION)]
[assembly: AssemblyFileVersion(VERSION)]
[assembly: AssemblyInformationalVersion(VERSION "-V1.0.0")]
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在 C# 中实现这一目标而不使用任何外部工具?
我正在寻找一种为我的ASP.NET MVC5解决方案创建动态汇编版本的方法,以便它遵循以下格式:
YYYY.MDXXXXX
例如:
2014.7.25.45261
理想情况下,我想在以下方面做到以下几点AssemblyInfo.cs:
DateTime dt = DateTime.Today;
[assembly: AssemblyVersion(String.Format("{0}.{1}.{2}.*", dt.Year, dt.Month. dt.Day))]
Run Code Online (Sandbox Code Playgroud)
我知道这不可能.
有没有其他方法来实现这一目标?