虽然使用第三方DLL我得到以下异常:

  

必须指定exePath当独立的exe内没有运行

用下面的跟踪

  

System.Configuration.ConfigurationManager.OpenExeConfigurationImpl(ConfigurationFileMap fileMap,布尔isMachine,ConfigurationUserLevel的UserLevel,字符串exePath)。

我发现的原因是,它一直在寻找的app.config和我提供了在web.config中的细节。我的问题是:为什么system.configuration的web.config和app.config中区分?任何想法?

有帮助吗?

解决方案

<强>可执行文件:

若干.NET可执行可以住在同一目录中。因为不能在同一个目录的两个文件具有相同的名称,应用程序必须为其主要的配置文件使用不同的名称。所述applicationName.exe.config方案解决这个问题。

网络应用/网站:

.NET Web应用程序被编译成DLL和网站通常只是在实时编译。因此,不存在“主入口点”,在这些类型的项目。它可以创建每个页面被编译到自己的程序集的Web项目。其中一个主要组件是什么?其装配,我们应该命名后的配置文件?

幸运的是,只有一个web项目,可以从一个单一的目录托管,所以只有一个主配置文件是要住在这里。这允许按照惯例被拾取的主配置文件名,和该文件名恰好是web.config

其他提示

web.config是为您的网站,只有Web应用程序。它保持固定,即不改变其名称;它总是被称为web.config

app.config对非Web应用程序 - 的WinForms,WPF,NT服务等,这将被重命名为当你建立你的项目YourApplicationName.exe.config。你永远不会发现这个名字的app.config在应用程序的目录(或如果你这样做,它不会被使用)。

为什么微软选择使用两种不同类型的名字 - 我不知道 - 问微软

所以你基本上只需要知道你正在处理什么用,并提供在正确的位置信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top