我正在研究一个有多个项目的解决方案。
我遵循此处描述的方法(建议使用常见解决方案项的第一个响应):single app.config multi-project c#
结果是,对于每个项目,app.config文件都被复制并重命名为XXX.exe.config。
但是,理想的输出是每个项目的配置文件名保持不变(例如App.config)。因为我想在部署时将所有可执行文件和DLL放在同一个文件夹中(对同一个DLL的一些可执行引用因此将它们放在一起是有意义的)。
任何建议都表示赞赏。
答案 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" #>