WebReference甚至在库装配项目中创建App.config

时间:2009-05-21 17:53:35

标签: .net web-services configuration

为什么向库装配项目添加Web引用会为项目创建app.config文件?它不会在运行时使用,对吗? - 因为每个主机进程(可执行文件)只能有一个根配置文件, - 这就是为什么只有可执行文件将其app.configs重命名为“projectName.exe.config”并在编译过程中部署到输出文件夹。

在任何情况下,唯一存在的是applicationSettings部分,其中一个配置设置带有Web服务的URL,通常由ops使用单独的配置设置动态设置......

此外,如果主进程有几个带Web引用的依赖库程序集,那有什么意义呢?将使用多个设置中的哪一个(每个依赖库组件一个)?

无论如何,我想摆脱这些app.configs,以避免在配置系统无法在运行时找到设置时出现异常,但是因为我不清楚为什么它首先出现在那里... Am我错过了什么?

2 个答案:

答案 0 :(得分:4)

将网络参考标记为静态(右键单击参考 - >属性 - >网址行为)。然后,url将存储在reference.cs文件中,而不是.config文件中。

当具有“自己的app.config”的程序集加载到具有单独的.config文件的应用程序中时,我相信它会合并.config文件,就像将machine.config与Web合并一样。配置(虽然我在这一点上可能是错的。)

答案 1 :(得分:0)

您已经回答了您的问题 - 添加了app.config,因为Web引用需要将URL存储到某个地方的服务中。最好存储在配置文件中,而不是硬编码到* .cs文件中,不是吗?

如果从主应用程序使用所有依赖程序集,则只使用主应用程序的app.config(重命名为mainapp.exe.config) - 依赖程序集将使用主应用程序的配置文件。通过添加Web引用创建的app.config仅作为一个位置,您可以在其中查看需要进入主app.config的设置。

如果你有一个单独的地方配置你的所有webservice URL(例如数据库表或其他东西),你可以扔掉生成的app.config - 没问题。

马克