摘要解决方案项目配置文件的常见部分

时间:2015-07-29 23:46:24

标签: c# .net web-config app-config

我有一个包含20个左右项目的解决方案。大多数这些项目的配置文件共享其配置文件的大部分。所以,让我们说他们都分享这些(丑陋的)代码:

<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter,
Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35" 
template="Timestamp: {timestamp}
Machine: {machine}
Identity Name: {identityName}
Authentication Type: {authenticationType}
Is Authenticated: {isAuthenticated}
Category: {category}
Process Name: {processName}
Process Id: {processId}
Severity: {severity}
EventId: {eventid}
Application Domain: {appDomain}

Session Id: {sessionId}
Class Name: {className}
Method Name: {methodName}
Thread Name: {threadName}
Extended Properties: {dictionary({key} - {value} )}

Title

{title}

Message

{message}

Stack Trace

{stackTrace}" name="Email Formatter"/>

我想知道的是,.config文件是否有类似Gulp的过程,其中文件的公共部分可以命名并存储在另一个文件中,然后在构建时将其粘贴到各个项目呈现的配置文件中?

2 个答案:

答案 0 :(得分:2)

使用配置继承怎么样?

对于网络配置,有信息here

对于app config,您可以在解决方案目录中创建公共配置文件,并在客户端应用程序配置中重复使用它:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings file="..\base.xml.config">
  ...
</configuration>

答案 1 :(得分:1)

我们的解决方案中有大约65个项目,并且分享完全相同的问题。对我们来说非常有效的解决方案是使用custom config sections并使用外部配置文件。这些文件集中在名为_MasterConfigs的文件夹(位于项目文件夹级别)下。

每个项目都使用预建事件来复制它所需的配置,并且它们在这些项目中被排除在源控制之外。

您可以使用类似的东西(我们的一个配置中的示例)在外部引用文件:

<solrConnections configSource="solr-local.config" />