给发布的exe文件增加版本号概念,方便进行版本管理。
在解决方案路径下增加AssemblyInfo.template.cs文件。内容如下
using System;
using System.Reflection;
using System.Runtime.InteropServices;
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.4.0.$WCLOGCOUNT-1046$")]
[assembly: AssemblyFileVersion("2.4.0.$WCLOGCOUNT-1046$")]
[assembly: AssemblyBuildBranch("$WCBRANCH$")]
[assembly: AssemblyBuildDate("$WCNOW$")]
[assembly: AssemblyBuildHash("$WCREV=7$")]
[assembly: AssemblyWCMODS("$WCMODS?1:0$")]
[AttributeUsage(AttributeTargets.Assembly)]
public class AssemblyBuildBranch : Attribute
{
public string text;
public AssemblyBuildBranch() : this(string.Empty) { }
public AssemblyBuildBranch(string version) { text = version; }
}
[AttributeUsage(AttributeTargets.Assembly)]
public class AssemblyBuildDate : Attribute
{
public string text;
public AssemblyBuildDate() : this(string.Empty) { }
public AssemblyBuildDate(string version) { text = version; }
}
[AttributeUsage(AttributeTargets.Assembly)]
public class AssemblyBuildHash : Attribute
{
public string text;
public AssemblyBuildHash() : this(string.Empty) { }
public AssemblyBuildHash(string version) { text = version; }
}
[AttributeUsage(AttributeTargets.Assembly)]
public class AssemblyWCMODS : Attribute
{
public string text;
public AssemblyWCMODS() : this(string.Empty) { }
public AssemblyWCMODS(string version) { text = version; }
}
在exe对应项目的生成的生成前事件(预生成事件),增加GitWCRev $(SolutionDir) $(SolutionDir)AssemblyInfo.template.cs $(SolutionDir)GlobalAssemblyInfo.cs
然后生成解决方案,然后会生成一个
在文件属性中可以看到版本信息
在program.cs获取版本号信息代码:
ver.version = Assembly.G ver.buildDate = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyBuildDate), false).Cast<AssemblyBuildDate>().First().text;//获取版本号
ver.buildBranch = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyBuildBranch), false).Cast<AssemblyBuildBranch>().First().text;
ver.buildHash = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyBuildHash), false).Cast<AssemblyBuildHash>().First().text;
ver.wcmods = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyWCMODS), false).Cast<AssemblyWCMODS>().First().text;etExecutingAssembly().GetName().Version.ToString();