2010-11-26 33 views
2

我正在写一个由第三方应用程序(框架的测试运行器,该DLL是测试夹具)加载的DLL。正确定位DLL的App.config节处理程序集

该DLL有自己的App.config文件(比如MyDll.dll.config),我可以告诉FitNesse加载该App.config文件。

但这里有一个问题:在app.config文件包含自定义配置节处理程序,就像这样:

<configuration> 

    <configSections> 
    <sectionGroup name="myGroup"> 
     <section name="MySection" type="MyNamespace.MyHandler.MySection, MyNamespace.MyHandler"/> 
     ... 
    </sectionGroup> 
    </configSections> 
    ... 
</configuration> 

每当App.config文件被读取时,我得到一个异常说,MyNamespace.MyHandler组件不能被发现,尽管它位于相同的文件夹被读取的文件MyDll.dll.config:

System.TypeInitializationException: 的类型初始为 “MyNamespace.MyHandler.MySection” 抛出异常。 ---> System.Configuration.ConfigurationErrorsException: 发生错误为 为myGroup/MySection创建 配置节处理程序:无法加载文件 或程序集“MyNamespace.MyHandler”或一个依赖的 之一。系统 找不到指定的文件

我可以看到系统在加载我的DLL的可执行文件所在的同一文件夹中查找此文件。但是,我不想将我的文件复制到此第三方目录中,反之亦然。

有没有办法指定系统应该在哪里查找DLL来解释App.config文件?一般的解决方案或FitNesse特定的解决方案都适用于我。

非常感谢您的帮助!

回答

1
+0

谢谢!我接受这个答案,因为它似乎解决了这个问题。但是,我们遇到了其他类似的问题,所以,唉,我们必须采用更加丑陋的解决方案,我将添加第二个答案。无论如何感谢! – Jan 2010-11-29 14:45:57

+0

kbalertz链接已死,任何人都有一个工作?我遇到同样的问题,无法加载与.config相同位置的DLL。 – MiloDC 2015-08-04 22:53:08

0

下面是我们发现自己另一种解决方案。尽管Gregor S.提出的解决方案似乎确实使我们能够阅读App.config,但随后我们遇到了有关工作目录的其他问题。因此,我们现在正在做的是将FitNesse Runner应用程序作为链接添加到我们的项目中,以便在执行之前将其从原始位置提取并复制到我们的测试应用程序的文件夹中。

这不是很好,但它的工作原理。

相关问题