比如程序集的名字是"MyAssembly",加了强名称.
我想通过Assembly.Load("MyAssembly")加载,
而不是Assembly.LoadFile("c:\\MyAssembly.dll")
应该怎么做??
谢谢谢谢

解决方案 »

  1.   

    通过给定程序集的长格式名称加载程序集??public static Assembly Load (
    string assemblyString
    )assemblyString是程序集名称的长格式..for exmaple:Assembly SampleAssembly = Assembly.Load
        ("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");
     
      

  2.   

    关于程序集名称的更多说明请参见MSDN:ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxfund/html/8f8c2c90-f15d-400e-87e7-a757e4f04d0e.htm
      

  3.   

    后面的version,Culture之类的不能省略吗 @_@
      

  4.   

    关于如何得到程序集的完全限定名:for exmaple:Type t = typeof(System.Data.DataSet);
                string s = t.Assembly.FullName.ToString();
                Debug.WriteLine(s );输出:System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
      

  5.   

    liujia_0421(SnowLover)地址打不开...我装的是msdn2003
      

  6.   

    TO:后面的version,Culture之类的不能省略吗 @_@不能,Assembly.Load(string)参数要求是指定程序集的长格式名称,也就是完全限定名...
      

  7.   

    TO:地址打不开...我装的是msdn2003哦,我的是VS2005
      

  8.   

    给你摘一点吧>>程序集的名称存储在元数据中,它对程序集的范围及应用程序对程序集的使用有重要影响。强名称程序集有一个完全限定的名称,由程序集的名称、区域性、公钥及版本号组成。该名称通常称为显示名称,对于加载的程序集,可通过使用 FullName 属性来获得它。运行库使用这些信息来定位程序集并将其同其他同名的程序集区分开。例如,名为 myTypes 的强名称程序集可以具有下列完全限定名:
    myTypes, Version=1.0.1234.0, Culture=en-US, PublicKeyToken=b77a5c561934e089c在此例中,完全限定名表明 myTypes 程序集的强名称具有公钥标记、区域性值为美国英语、版本号为 1.0.1234.0。......
      

  9.   

    liujia_0421(SnowLover)把问题讲得很清楚了。
      

  10.   

    我想通过Assembly.Load("MyAssembly")加载,
    而不是Assembly.LoadFile("c:\\MyAssembly.dll")
    ----------------------------------
    这不一样吗?无非第二个是用文件名构造出文件地址就是了!
      

  11.   

    在 .NET 框架中,将程序集加载至应用程序域的方法有几种。System.AppDomain 类包含几种重载的 Load 方法。尽管这些方法可用于将任何程序集成功地加载至当前的或新的应用程序域,但它们主要还是用于 COM 交互操作。您也可以使用 CreateInstance 方法加载程序集。 System.Reflection.Assembly 类包含两种静态重载方法:Load 和 LoadFrom。这两种方法因加载上下文而异。 http://www.kupage.com/webdesign/7/20030701/1104280000027ngcopfc.htm
      

  12.   

    TO:后面的version,Culture之类的不能省略吗 @_@可以通过向调用方法仅提供有关程序集的部分信息的方式(例如仅指定程序集名称),对程序集进行动态引用。担在这种情况下,仅在应用程序目录下搜索程序集,不进行其他检查。
      

  13.   

    http://blog.csdn.net/smartstar2005/archive/2006/10/04/1320097.aspx