首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

未能加载文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件。变态,该怎么处理

2012-04-11 
未能加载文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件。变态报错:未能加载文件或程序集“Plug

未能加载文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件。变态
报错:
未能加载文件或程序集“Plugin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。

代码如下:

C# code
 //创建新的Domain            domain = AppDomain.CreateDomain(name);            Type type = typeof(SmartPluginInstanceFactory);            //创建工厂实例化            factory = (SmartPluginInstanceFactory)domain.CreateInstanceAndUnwrap(type.Assembly.FullName, type.FullName);            //factory = (SmartPluginInstanceFactory)domain.CreateInstance(type.Assembly.FullName, type.FullName).Unwrap();


代码如上我的代码,该代码在Plugin程序集中,用CS架构或者控制台程序时都没问题,但B/S架构就明明这个Plugin集就有了,但报上面这种错。纠结呀,我发现在C/S架构和B/S架构下, Type type = typeof(SmartPluginInstanceFactory);type对象有一些不同,求指定呀!急

[解决办法]

是不是少了什么DLL的引用?
[解决办法]
dll引用少了吧?你看看项目中有没,
[解决办法]
如果是自己開發的,才可以說dll之間沒有關聯
[解决办法]
是不是生成的DLL版本比你的BS的要高?
重新生成一下DLL,把框架改低试试。
[解决办法]
应该是当前路径的问题,asp.net的当前路径在 c:\windows下的什么地方。

试一试下面的代码:

namespace SeperateAppDomainTest
{
class Program
{
static void Main(string[] args)
{
LoadAssembly();
}

public static void LoadAssembly()
{
string pathToDll = Assembly.GetExecutingAssembly().CodeBase;
AppDomainSetup domainSetup = new AppDomainSetup { PrivateBinPath = pathToDll };
var newDomain = AppDomain.CreateDomain("FooBar", null, domainSetup);
ProxyClass c = (ProxyClass)(newDomain.CreateInstanceFromAndUnwrap(pathToDll, typeof(ProxyClass).FullName));
Console.WriteLine(c == null);

Console.ReadKey(true);
}
}

public class ProxyClass : MarshalByRefObject { }
[解决办法]
temporary是存放预编译文件的地方,aspnet和应用程序运行机制不一样,你用该指定确切的dll地址,用type只会有这个结果

热点排行