none
c#如何同时使用两个版本的同名控件 RRS feed

  • 问题

  • 请问各位老大,有没有办法在c#的程序中同时使用版本号不同的同名控件?谢谢。
    业精于勤,荒于嬉,行成于思,毁于随。
    2010年5月17日 14:49

答案

  • 控件没有版本号,控件所在的DLL才有。要使用不同版本的DLL的话需要DLL有跨版本兼容。比如Windows Forms 版本1.1基于CLR 1.1,Windows Forms版本2基于CLR 2.0,因为CLR 4.0之前多个版本的CLR不能共存,所以只能在CLR2上跑基于Windows Forms 1.1的代码,而可能会有很多兼容问题



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月17日 21:13
    版主
  • 你好!

         如果你确定不会造成彼此冲突,是可以同时使用的,把他们添加到工具箱里,然后拖到设计器就可以了!


    周雪峰
    2010年5月18日 1:13
    版主
  • 如果您确定控件的 DLL 具备版本号,并且已经被强签名,就可以被同时引入到同一个应用程序。未经强签名的程序集的不同版本是不可以被同一应用程序加载的。

    如果没有强签名,请尝试用 sn.exe 对其进行强签名。


    Mark Zhou
    2010年5月18日 9:58

全部回复

  • 控件没有版本号,控件所在的DLL才有。要使用不同版本的DLL的话需要DLL有跨版本兼容。比如Windows Forms 版本1.1基于CLR 1.1,Windows Forms版本2基于CLR 2.0,因为CLR 4.0之前多个版本的CLR不能共存,所以只能在CLR2上跑基于Windows Forms 1.1的代码,而可能会有很多兼容问题



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月17日 21:13
    版主
  • 你好!

         如果你确定不会造成彼此冲突,是可以同时使用的,把他们添加到工具箱里,然后拖到设计器就可以了!


    周雪峰
    2010年5月18日 1:13
    版主
  • 如果您确定控件的 DLL 具备版本号,并且已经被强签名,就可以被同时引入到同一个应用程序。未经强签名的程序集的不同版本是不可以被同一应用程序加载的。

    如果没有强签名,请尝试用 sn.exe 对其进行强签名。


    Mark Zhou
    2010年5月18日 9:58