AssemblyVersion、AssemblyFileVersion 和 AssemblyInformationa…
有三個程序集版本屬性。有什麼區別?如果我使用
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!彙編資訊版本
程序集的產品版本。這是您在與客戶交談或在您的網站上顯示時使用的版本。此版本可以是一個字元串,例如“ 1.0 Release Candidate ”。
AssemblyInformationalVersion是可選的。如果未給出,則使用 AssemblyFileVersion。我使用格式:major.minor[.patch] [revision as string]。這將導致:
[assembly: AssemblyInformationalVersion("1.3 RC1")]