嗯,这个问题与标题略有不同的其他问题有点不同。
我将一个配置文件添加到我的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
返回另一条完全不同的路径。
那么,我做错了什么?有一些配置缺少将配置文件复制到运行应用程序的实际位置?
在你的帮助下提前感谢你!
答案 0 :(得分:2)
通常当你构建.dll
并且它有一个配置时,该文件与同一文件夹中的dll一起存在。
唉,当你在另一个项目中使用你的dll时,那个项目通常都有自己的配置,这个配置优先于dll的配置。
您可以将dll的配置添加到父配置中,或者尝试在代码中配置您需要的内容,而不是在配置中配置。
答案 1 :(得分:1)
在.NET中,DLL不能有配置文件。他们根本就不会被使用。如果您使用项目属性中的设置选项卡,则会创建它们,但不会读取它们。您需要做的是将该配置文件中的设置合并到应用程序的配置中(在您的情况下,是web.config文件)。