插件(dll)打包后,有的插件不能被加载?开发机上不会没有这种问题,打包后,在别人机子上运行的时候,有的dll加载不了?
为什么,,有没有人碰到过类似的情况,帮忙看看,谢谢!!

解决方案 »

  1.   

    first:
    check target machine have .Net framework or not.second:
    check directory is absoluteness or opposite
      

  2.   

    是不是相关的Dll都打包进去了
      

  3.   

    .Net framework 有装,版本也对
    dll都有打包进去
    路径如:
    str=Application.ExecutablePath.Substring(0,Application.ExecutablePath.LastIndexOf("\\"));
    files=Directory.GetFiles(str,"*.dll");
    try
    {
    foreach(string dllFile in files)
    {
    if (File.Exists(dllFile)!=false)
    {
    Assembly asy=Assembly.LoadFrom(dllFile);
    object obj=asy.CreateInstance("DiHaoInterface.DiHaoInterfaceClass");
    if (obj!=null)
    {
      

  4.   

    .   确保所有dll被安装。
        因为使用反射加载的组件没有不是你的组件的静态依赖项,组件A引用的组件会在A中的程序集清单中列出,打包程序会检查这个信息,从而保证这些依赖组件被自动包含在安装包中,反射加载的组件就需要你保证把他们全部添加到安装文件列表中。
      

  5.   

    程序安装后
    在安装目录下所有dll都在
    可有的就是加载不进来?
    奇怪
    郁闷~
      

  6.   

    加载不成功的dll是不是调用了只有部分机器有的非DotNet组件(api或者com之类)