日期:2014-05-19  浏览次数:20442 次

关于Web中引用的dll的配置文件
我的Web   程序需要引用一个以前的dll文件,   dll文件里需要一个配置文件,aaa-config.xmldll要读取它,dll里面的代码将文件路径写死在里面,
string   path   =   "aaa-config.xml ";
        try
        {
                if   (!File.Exists(path))
                {
                  }
          }
这样的话把dll和这个aaa-config.xml文件都放到bin里面,Web程序运行时报文件找不到的异常,但是在windows应用程序下用这个dll却不异常。这是怎么回事,能解决么?

------解决方案--------------------
在asp.net下,默认“当前目录”是指网站虚拟目录,不是bin目录。

显然你那个代码是原来的那个dll设计者责任造成的。如果可以改,那么路径应该使用.net应用程序所规定的 AppDomain.CuttentDomain.BaseDirectory 来获取(更专业一点的作法是可以读取config文件中的参数)。如果不能改,那么你只能把xml放到相应的目录下。
------解决方案--------------------
你看DDL说需要读取的文件的具体目录位置
------解决方案--------------------
这样是找不到配置文件的,如果路径写死了,它需要放在和dll同一目录下
dll被asp.net加载后一般是放在asp.net临时目录下,一般来说比较随机