none
使用反射动态实例化一个类,出现未能加载文件或程序集??错误日志!!! RRS feed

  • 问题

  • ----------我是用VS2008做的项目-------
    *** 程序集联编程序日志项 (2008-12-11 @ 22:34:26) ***
    
    操作失败。
    绑定结果: hr = 0x80070002。系统找不到指定的文件。
    
    程序集管理器加载位置:  C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
    在可执行文件下运行  C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0\WebDev.WebServer.exe
    --- 详细的错误日志如下。
    
    === 预绑定状态信息 ===
    日志: 用户 = 20081206-2230\Administrator
    日志: DisplayName = Office.BLL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
     (Fully-specified)
    日志: Appbase = file:///F:/MyOffice/Office.UI/
    日志: 初始 PrivatePath = F:\MyOffice\Office.UI\bin
    日志: 动态基 = C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\abc9f318
    日志: 缓存基 = C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\abc9f318
    日志: AppName = 178b6438
    调用程序集: Factory, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null。
    ===
    日志: 此绑定从 default 加载上下文开始。
    日志: 正在使用应用程序配置文件: F:\MyOffice\Office.UI\web.config
    日志: 使用 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config 的计算机配置文件。
    日志: 此时没有为引用应用策略(私有、自定义、分部或基于位置的程序集绑定)。
    日志: 试图下载新的 URL file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/abc9f318/178b6438/Office.BLL.DLL。
    日志: 试图下载新的 URL file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/abc9f318/178b6438/Office.BLL/Office.BLL.DLL。
    日志: 试图下载新的 URL file:///F:/MyOffice/Office.UI/bin/Office.BLL.DLL。
    日志: 试图下载新的 URL file:///F:/MyOffice/Office.UI/bin/Office.BLL/Office.BLL.DLL。
    日志: 试图下载新的 URL file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/abc9f318/178b6438/Office.BLL.EXE。
    日志: 试图下载新的 URL file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/abc9f318/178b6438/Office.BLL/Office.BLL.EXE。
    日志: 试图下载新的 URL file:///F:/MyOffice/Office.UI/bin/Office.BLL.EXE。
    日志: 试图下载新的 URL file:///F:/MyOffice/Office.UI/bin/Office.BLL/Office.BLL.EXE。
    日志: 已尝试所有探测 URLs 但全部失败。
    
    
    2008年12月12日 8:07

答案

  • 这个得看你的代码。
    一般是System.Reflection.Assembly 类的LoadFile或者LoadFrom等方法传递的路径不对,可以跟踪看看


    2008年12月12日 8:21
    版主

全部回复

  • 这个得看你的代码。
    一般是System.Reflection.Assembly 类的LoadFile或者LoadFrom等方法传递的路径不对,可以跟踪看看


    2008年12月12日 8:21
    版主
  • //就这些代码了,谢谢你的帮助啊!!!

     

    namespace Factory

    {

      public static BLLFactory Instance()
            {
                //String namespaceName = ConfigurationSettings.AppSettings["OfficeBLL"];
                //String fullName = namespaceName + "." + "CreatBLLFactory";
                // string n = System.Reflection.Assembly.GetExecutingAssembly().ToString();//获取当前运行的程序集的
                return (BLLFactory)System.Reflection.Assembly.Load("Office.BLL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null").CreateInstance("Office.BLL.CreatBLLFactory");
            }

     public abstract IUserInfoBll CreateUserInfoBll();//20

    }

     

     

    namespace Office.BLL

    {

     public class CreatBLLFactory : BLLFactory
        {

            public override IUserInfoBll CreateUserInfoBll()
            {
                return (IUserInfoBll)new UserInfoBll();
            }
        }

    }

     

     protected void loginButton_Click(object sender, ImageClickEventArgs e)
            {
                //从登录页面获取用户名和密码
                String userName = this.userName.Text;
                String passWord = this.passWord.Text;
                BLLFactory factory = BLLFactory.Instance();
                UserInfo userinfo = factory.CreateUserInfoBll().Login(userName, passWord);

            }

    代码的调用基本上就这些吧!!!
    2008年12月12日 8:36
  • Office.BLL.DLL在这些文件夹里面存在吗?
    C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/abc9f318/178b6438/
    F:/MyOffice/Office.UI/bin/
    看样子你的程序是在F:/MyOffice/Office.UI/里面启动的,是不是你的ASP.NET网站的根目录设到F:/MyOffice/文件夹里面了?你的图片我看不到,163
    把匿名访问给屏蔽掉了


    2008年12月15日 17:28
  •  Killmyday 写:
    Office.BLL.DLL在这些文件夹里面存在吗?
    C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/abc9f318/178b6438/
    F:/MyOffice/Office.UI/bin/
    看样子你的程序是在F:/MyOffice/Office.UI/里面启动的,是不是你的ASP.NET网站的根目录设到F:/MyOffice/文件夹里面了?你的图片我看不到,163
    把匿名访问给屏蔽掉了



    C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/
    Temporary ASP.NET Files/
    root/abc9f318/178b6438/里面没有Office.BLL.DLL
    F:/MyOffice/Office.UI/bin/里面也没有Office.BLL.DLL
    程序运行的时候F:/MyOffice/Office.UI/是启动项的啊,
    但是我打开项目(打开vs)的那个文件在f:/MyOffice下面
    我的程序中所有的项目都在F:/MyOffice目录下。能解决吗?
    2008年12月20日 10:32