有三个程序集版本属性。有什么区别?如果我使用AssemblyVersion并忽略其余部分可以吗?
AssemblyVersion
MSDN 说:
指定被赋予属性的程序集的版本。
指示编译器为 Win32 文件版本资源使用特定版本号。Win32 文件版本不需要与程序集的版本号相同。
定义程序集清单的附加版本信息。
汇编版本
引用您的程序集的其他程序集将在哪里查找。如果此编号发生更改,其他程序集必须更新它们对您程序集的引用!仅当它破坏向后兼容性时才更新此版本。AssemblyVersion是必需的。
我使用格式: major.minor (对于非常稳定的代码库来说是 major )。 这将导致:
[assembly: AssemblyVersion("1.3")]
如果您严格遵循SemVer,则这意味着您仅在 主要 更改时才更新,例如 1.0、2.0、3.0 等。
程序集文件版本
用于部署(如安装程序)。您可以为每个部署增加此数字。使用它来标记具有相同AssemblyVersion但从不同构建和/或代码生成的程序集。
在 Windows 中,可以在文件属性中查看。
AssemblyFileVersion 是可选的。如果未给出,则使用 AssemblyVersion。
我使用格式: major.minor.patch.build ,前三部分遵循SemVer,最后一部分使用 buildserver 的 buildnumber(0 表示本地构建)。这将导致:
[assembly: AssemblyFileVersion("1.3.2.42")]
请注意System.Version将这些部分命名为major.minor.build.revision!
major.minor.build.revision
汇编信息版本
程序集的产品版本。这是您在与客户交谈或在您的网站上显示时使用的版本。此版本可以是一个字符串,例如“ 1.0 Release Candidate ”。
AssemblyInformationalVersion是可选的。如果未给出,则使用 AssemblyFileVersion。
AssemblyInformationalVersion
我使用格式: major.minor[.patch] [revision as string] 。这将导致:
[assembly: AssemblyInformationalVersion("1.3 RC1")]