C#中的装配和更多(第1部分)

时间:2013-07-18 17:27:03

标签: c#

如果你去:

  

解决方案资源管理器 - >属性 - >(双击)程序集信息

您将看到有关项目装配的一些信息。最后,每个程序集都有一些不同的版本:

  1. 主要版本
  2. 次要版本
  3. 内部版本号
  4. 修订
  5. 而且我理解这些是以下数字:

      

    [assembly:AssemblyVersion(“1.0.0.0”)]
      [assembly:AssemblyFileVersion(“1.0.0.0”)]

    但我不明白其含义。

4 个答案:

答案 0 :(得分:3)

构建项目时,这些值将被烘焙到dll中,这样当您通过Windows文件系统查看dll的属性时,您将看到该版本号。

管理这些数字对于屁股来说有点痛苦。在较旧的项目中,你经常会看到一些丑陋的构建脚本,它们会检查文件然后增加数量然后检查它们然后继续构建...我见过的最优雅的解决方案是由TeamCity实现的(虽然可能有类似的产品);它基本上将所有项目文件复制到您的构建服务器,然后它使用它维护的值编辑它的本地副本(您可以在UI中更改或重置它们),然后构建项目。这使得它可以永远不会触摸源代码控制,同时让您可以很好地控制dll版本控制。

答案 1 :(得分:1)

他们是你想要的意思。您可以自由地为版本号的每个部分使用您自己的定义;除了不同数字不同的事实之外,没有任何功能可以通过语言驱动。

答案 2 :(得分:1)

AssemblyVersion用于程序集的强名称(签名)。

Windows在文件属性的“版本”选项卡中显示

AssemblyFileVersion

AssemblyInformationalVersion用于组合清单中,例如NuGet。

至于如何版本,我推荐Semantic Versioning,它使用3部分版本号:

  

给定版本号MAJOR.MINOR.PATCH,增加:
  1.当您进行不兼容的API更改时,MAJOR版本,
  2.以向后兼容的方式添加功能时的MINOR版本,以及
  3.当您进行向后兼容的错误修复时的PATCH版本。

答案 3 :(得分:0)

AssemblyVersion用于带有sn.exe的程序集的强名称,但是 AssemblyFileVersion显示文件属性的版本。