程序集的版本控制[下]

作者:袖梨 2022-07-02
这里就具体的实现对程序集版本的控制简单地说说两种方法。希望能有一定的参考意义吧。
1。手动编码实现:
在类中添加静态只读的字符串类型的属性CodeVersion表示程序集(即变量所在类)的版本号。例如在2005年1月20日第一次编写了Member类,那么依照本文上半部分(http://blog.111com.net/crazytomato/archive/2005/01/28/codelibraryversioncontrolshang.aspx)的讨论,该程序集编译后的版本号应为1.0.2005-01-20.0,则代码如下:
Class Member
{
public static string CodeVersion
{
get
{
return “1.0.2005-01-20.0”;
}
}

//Other Code …

}
在页面代码中使用程序集时,在初始化类或使用类的静态方法前,先判断程序集版本。当版本符号所需要的要求时再对其进行使用。例如:


//… Other Code …
If(Member.CodeVersion = = “1.0.2005-01-20.0”)


{
Member member = new Member();
// Other Code …
}
Else
{
throw new Exception(“正在使用的程序集版本不是所需要的版本!”);
}

或者先对版本号字符串进行一些处理:


//… Other Code …
string MemberVersion = Member.CodeVersion;
string MajorMemberVersion = MemberVersion. Substring(0, 1);
int IntMajorMemberVersion = Convert.ToInt32(MajorMemberVersion);
If(IntMajorMemberVersion >= 2)
{
Member member = new Member();
// Other Code …
}
Else
{
throw new Exception(“正在使用的程序集版本过旧,请使用新版本的程序集!”);
}
2。对程序集使用强名称:
//这里仅列出一般性的大概说明
首先,使用强名称工具(Sn.exe),生成密钥文件;
然后,在程序集的属性中加入相关信息,并写入版本号,区域等相关信息,例如:
[assembly: AssemblyVersion("1.0.2005-01-20.0")] //程序集的版本号
[assembly: AssemblyKeyFile("KeyFile.snk")] //用Sn.exe生成的密钥文件

相关文章

精彩推荐