C#app.config在多个项目之间共享

时间:2011-11-10 14:27:48

标签: c#

我正在研究一个有多个项目的解决方案。

我遵循此处描述的方法(建议使用常见解决方案项的第一个响应):single app.config multi-project c#

结果是,对于每个项目,app.config文件都被复制并重命名为XXX.exe.config。

但是,理想的输出是每个项目的配置文件名保持不变(例如App.config)。因为我想在部署时将所有可执行文件和DLL放在同一个文件夹中(对同一个DLL的一些可执行引用因此将它们放在一起是有意义的)。

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:1)

您可以手动加载配置文件。请参阅此处的讨论:Using ConfigurationManager to load config from an arbitrary location

答案 1 :(得分:1)

我建议你看一下使用TT模板。然后,简单的解决方案是拥有一个包含常见ttinclude文件的App.tt文件。这将根据您可能要在app.config中设置的其他设置生成具有相同(或不同)内容的App.config文件。

例如,我们有一个看起来像这样的App.Config:

<# EnvironmentName = "local"; #>
<#@ include file="App.Template.ttinclude" #>

App.Template.ttinclude包含我们想要输出的所有内容(以及一些基于Environment值更改的设置,因为我们支持8个安装环境。

每个App.Template.ttinclude实际上包含另一个主配置文件,其中包含我们的常用设置,但由于我们在主配置文件中包含特定于环境的配置,在switch语句中(为了解决bug),这开始变得复杂在TT文件处理中。)

如果我们有特定于应用程序的DLL配置,它只包含我们的其中一个:

e.g。 MyApp.Exe.config包含:

<#@ include file="App.tt" #>