AssemblyInfo.cs,.net应用程序版本

时间:2011-01-04 15:05:53

标签: c# .net versioning assemblyinfo

我想在我的.net应用程序中保留版本,让.net来管理它。我真的不明白它是如何工作的。每个项目的版本号是多少? .net如何管理版本?如果有人能够简单解释一下,我将不胜感激。

3 个答案:

答案 0 :(得分:7)

我通常做的是保留一个SolutionInfo.cs,其中包含我的解决方案项目的所有常用属性,例如版本号。我将此文件保存在解决方案根目录中。

然后我将该文件链接到项目中(右键单击项目,然后单击Add-> Exsiting item ... - > Add as link(添加按钮上的小箭头))。

然后我可以在一个地方增加版本号,它将在链接该文件的所有项目中更新。

有关详细信息,请参阅:http://jebsoft.blogspot.com/2006/04/consistent-version-numbers-across-all.html

答案 1 :(得分:3)

版本号是每个项目(.csproj文件),因此每个构建的.dll或.exe文件。版本号嵌入在.dll或.exe中,可以使用(例如)Windows资源管理器通过右键单击文件并选择属性来查看。

MSDN包含有关如何在http://support.microsoft.com/kb/556041使用AssemblyVersionAssemblyFileVersion的解释性文章

答案 2 :(得分:1)

[AssemblyVersion]在.NET中是一个非常重要的事情。程序中的每个类型都使用程序集版本进行打印,它是类型标识的一部分。换句话说,当您的类型版本发生更改时,您还应该更改程序集版本。这会强制重新编译使用您的类型的所有其他程序集。

您可以做的一件事是让构建系统自动增加版本。你不能用任何想象力来称之为“管理版本”。因为现在只是重建您的程序集,即使没有在源代码中进行任何更改,也会使您的程序集与使用该程序集中的类型的其他代码不兼容。

显然,只有在解决方案中重新编译所有代码时,这才能正常工作。

嗯,除非你喜欢剑战,否则这并不好。此外,有时您希望在代码中进行简单的错误修复。结果是组件仍然与原始版本100%兼容。并且您不需要也不想重新编译使用它的所有其他内容。您只想将一个组件发送给您的客户。显然,只有当让版本自动增加时才能正常工作。

所以你真正需要的是某种工具可以神奇地确定你的源代码,它的公开可见部分,不再与以前的版本兼容。或者你对它的不可见部分所做的更改正在改变代码的行为太多,以至于不允许使用你的类型的其他代码继续使用它而不需要对代码进行一些更改。

我所知道的只有一种工具可以做到这一点,就是我们耳中的工具。