我只是想知道如何使用Visual Studio(2005)自动增加文件的构建(和版本?)

如果我查找C:\Windows\notepad.exe的属性,版本选项卡给出“文件版本:5.1.2600.2180”。我想在我的dll的版本中也得到这些很酷的数字,而不是版本1.0.0.0,让我们面对它有点沉闷。

我尝试了一些东西,但它似乎没有开箱即用的功能,或者可能我只是在错误的地方(像往常一样)。

我主要工作与网络项目....

我看了两个:

http://www.codeproject.com/KB/dotnet/Auto_Increment_Version.aspx http://www.codeproject.com/KB/dotnet/build_versioning.aspx

我不敢相信花这么大力气做一件事是标准做法。

编辑: 据我所知,它在VS2005中不工作(http://www.codeproject.com/KB/dotnet/AutoIncrementVersion.aspx)


当前回答

也许现在回答这个问题已经太迟了,但希望这能解决一些人忙碌的问题。

使用PowerShell脚本自动更改所有项目的汇编版本的方法。本文将解决您的许多问题。

其他回答

要获得版本号,请尝试

 System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
 System.Reflection.AssemblyName assemblyName = assembly.GetName();
 Version version = assemblyName.Version;

要设置版本号,请创建/编辑AssemblyInfo.cs

 [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyFileVersion("1.0.*")]

另外,作为旁注,第三个数字是自2000年2月1日以来的天数,第四个数字是当天总秒数的一半。所以如果你在午夜编译,它应该是0。

我用Visual Studio 2019尝试了这一点,但它不起作用。 在较新的VS版本中,至少确定性标志阻止了自动更新。但是改变了第14行 您的项目名。csproj到<Deterministic>false</Deterministic> . csproj到<Deterministic>false</Deterministic> . csproj到 并将版本号字符串更改为“1.0”。*”并没有帮到我。

所以我做了一个小vbs脚本来完成这项工作。 它将版本号更改为(主要版本)。(小版本)。[一][dayofyear])。(增量)。

将脚本复制到一个文件夹中,并将以下内容放入pre-compile build-commandline:

"Path-to-this-script\UpdateVersion.vbs"  "$(ProjectDir)"

(包括报价和填写您机器的真实路径) 和你完成了。

在这里获取: https://github.com/abtzero/VS_UpdateVersion.git

使用MSBuild Community Tasks (http://msbuildtasks.tigris.org/)项目中的AssemblyInfo任务,并将其集成到.csproj/中。vbproj文件。

它有许多选项,包括将版本号与日期和时间联系起来。

推荐。

设置版本号为“1.0”。*”,它会自动填充最后两个数字的日期(天从某个点)和时间(半秒从午夜)

从现在开始,对于我的申请,

string ver = Application.ProductVersion;

返回ver = 1.0.3251.27860

3251是自1/1/2000以来的天数。我使用它将版本创建日期放在应用程序的启动屏幕上。当与用户打交道时,我可以询问创建日期,这比一些长数字更容易沟通。

(我是一个支持小公司的个人部门。这种方法可能不适合你。)