使用时
AssemblyInfo.cs中的[assembly: AssemblyVersion("1.1.*")]
我知道构建和修订号被有意义的值替换。但是有没有办法在其他地方获得这些价值?
我想保持AssemblyVersion稳定,但仍然可以将这些值放在装配中的某处。
我找到了从PE Header中提取数据的主题,但我更喜欢不那么具有侵入性的东西。
答案 0 :(得分:1)
我通常使用的方法是将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)]
这样,版本信息也可以在您的代码中使用,例如用于在关于框中显示版本信息。
答案 1 :(得分:0)
AssemblyFileVersion - 请参阅http://support.microsoft.com/kb/556041
上的Microsoft KB它的使用方法与AssemblyVersion相同:
[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
GAC使用AssemblyVersion进行强命名等,而AssemblyFileVersion则不然。