繁体   English   中英

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

[英]C# app.config sharing between multiple projects

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

我遵循这里描述的方法(建议使用常见解决方案项的第一个响应): 单个app.config多项目c#

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

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

任何建议表示赞赏。

您可以手动加载配置文件。 请参阅此处的讨论: 使用ConfigurationManager从任意位置加载配置

我建议你看一下使用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语句中(为了解决TT文件中的错误),这开始变得复杂处理)。

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

例如,MyApp.Exe.config包含:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM