C#DLL配置文件不存在

时间:2014-09-02 08:00:10

标签: c# asp.net .net dll configuration-files

嗯,这个问题与标题略有不同的其他问题有点不同。

我将一个配置文件添加到我的DLL中,该文件将从网站和控制台应用程序中使用。 我正在从我的Web应用程序测试DLL。

当我构建DLL时,我可以在MyApp.dll.config文件夹中看到我的bin\debug

然而,当我尝试以这种方式从DLL中读取设置时:

var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);

找不到该文件。 我知道这与执行应用程序的位置有关,Assembly.GetExecutingAssembly().Location返回Framework\v4.0.30319\Temporary ASP.NET Files\root\...中的路径,而AppDomain.CurrentDomain.BaseDirectory返回另一条完全不同的路径。

那么,我做错了什么?有一些配置缺少将配置文件复制到运行应用程序的实际位置?

在你的帮助下提前感谢你!

2 个答案:

答案 0 :(得分:2)

通常当你构建.dll并且它有一个配置时,该文件与同一文件夹中的dll一起存在。
唉,当你在另一个项目中使用你的dll时,那个项目通常都有自己的配置,这个配置优先于dll的配置。

您可以将dll的配置添加到父配置中,或者尝试在代码中配置您需要的内容,而不是在配置中配置。

答案 1 :(得分:1)

在.NET中,DLL不能有配置文件。他们根本就不会被使用。如果您使用项目属性中的设置选项卡,则会创建它们,但不会读取它们。您需要做的是将该配置文件中的设置合并到应用程序的配置中(在您的情况下,是web.config文件)。