程序集的版本控制[下]

类别:Asp 点击:0 评论:0 推荐:

        这里就具体的实现对程序集版本的控制简单地说说两种方法。希望能有一定的参考意义吧。
        1。手动编码实现:
               在类中添加静态只读的字符串类型的属性CodeVersion表示程序集(即变量所在类)的版本号。例如在2005年1月20日第一次编写了Member类,那么依照本文上半部分(http://blog.csdn.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生成的密钥文件

  则编译后便为程序集使用了强名称,并且赋予了版本号       1.0.2005-01-20.0  

  然后在使用该程序集时可使用.Net提供的方法来对访问程序集的属性值;

  在使用程序集时只需要绑定所需要的版本号,或者使用所需要的版本策略,从而即可达到版本控制的目的,不再需要手动检查并匹配版本信息。
//具体说明以及使用强名称工具,绑定版本号,使用版本策略等详细情况可查阅MSDN及.Net Framework SDK文档,

            

本文地址:http://com.8s8s.com/it/it7429.htm