是否有一种正确的方法可以在AssemblyVersion旁边的其他地方使用自动构建和修订号
本文关键字:方使用 其他 构建 AssemblyVersion 一种 方法 是否 | 更新日期: 2023-09-27 18:37:14
使用时 [assembly: AssemblyVersion("1.1.*")]
在AssemblyInfo中.cs我知道内部版本号和修订号被有意义的值所取代。但是,有没有办法在其他地方获得这些值?我想保持程序集版本稳定,但仍然能够将这些值刻录到程序集的某个地方。
我找到了从 PE 标头中提取数据的主题,但我更喜欢不那么侵入性的东西。
我通常使用的方法是将AssemblyInfo.cs
视为此类版本号的端点,而不是起点。
所以我会从一个由构建过程(例如您的 CI 系统)自动生成或修改的文件开始,例如
public static class BuildNumber
{
public const string Build = "<<git branch>>";
public const string Revision = "<<CI build number>>";
}
然后我有一个包含所有版本信息的版本类:
public static class Versions
{
public static int Major { get { return Convert.ToInt32(MajorString); } }
public static int Minor { get { return Convert.ToInt32(MinorString); } }
public static int Build { get { return Convert.ToInt32(BuildNumber.Build); } }
public static int Revision { get { return Convert.ToInt32(BuildNumber.Revision); } }
public const string AssemblyVersion = MajorString + "." + MinorString + "." +
BuildNumber.Build + ". " + BuildNumber.Revision;
private const string MajorString = "1";
private const string MinorString = "2";
}
最后,将以下内容放入AssemblyInfo.cs
文件中:
[assembly: AssemblyVersion(Versions.AssemblyVersion)]
这样,版本信息也可以在您的代码中使用,例如用于在关于框中显示版本信息。
AssemblyFileVersion - 在 http://support.microsoft.com/kb/556041 上查看 Microsoft KB
它的使用方式与AssemblyVersion相同:
[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
AssemblyVersion 被 GAC 用于强命名等,而 AssemblyFileVersion 则不是。