C# 解决方案范围的app.config/web.config?

C# 解决方案范围的app.config/web.config?,c#,.net,visual-studio,visual-studio-2010,C#,.net,Visual Studio,Visual Studio 2010,我有一个包含一个asp.net-mvc-2项目、一个web服务、一个类库和三个普通桌面应用程序的解决方案。目前我需要将所有app.config设置从一个项目复制到另一个项目。如果我想改变什么,那就是一场噩梦 我知道有一种解决方案可以将所有这些信息存储在global.config文件中,但我正在寻找一种解决方案来存储专用于我的解决方案而不是我的机器的值。这可能吗?假设您的网站和Web服务都有一个可以访问它的路径,那么您可以使用appsettings“file”属性将设置存储在一个公共位置。 参考

我有一个包含一个asp.net-mvc-2项目、一个web服务、一个类库和三个普通桌面应用程序的解决方案。目前我需要将所有app.config设置从一个项目复制到另一个项目。如果我想改变什么,那就是一场噩梦


我知道有一种解决方案可以将所有这些信息存储在global.config文件中,但我正在寻找一种解决方案来存储专用于我的解决方案而不是我的机器的值。这可能吗?

假设您的网站和Web服务都有一个可以访问它的路径,那么您可以使用appsettings“file”属性将设置存储在一个公共位置。 参考
希望这有帮助

您可以将单个.config文件添加到一个项目中,然后选择添加->现有项…->添加为链接将对该文件的引用添加到其他项目中。他们都将使用该文件构建,就像它是他们自己的副本一样,但实际上只有一个副本,您只需在一个地方进行更改

我会对给出的答案发表评论,但我没有足够的声誉。这确实适用于App.config文件,但您必须添加一个文本文件,然后将其命名为App.config。之后,只需声明XML(如下所示)



然后按照上面所说的做,并将其作为链接添加到您的解决方案中。这是一种享受。

我找到了一个非常简单的解决方案:

1。在公共类库项目中创建一个文件
CommonSettings.config

2。将您的常用设置放入此文件:

<appSettings>
    <add key="someCommonSetting" value="some value"></add>
    <!-- more setting here -->
</appSettings>
注意:

要使此方法起作用,应将共享配置文件复制到 项目的输出目录,因此它与常规 App/Web.config文件。将现有的shared.config文件添加到 作为链接文件进行项目,并将其设置为“更新时复制”。你应该看到 在.csproj文件中类似于此的内容:

<None Include="..\CommonConnectionStrings.config">
  <Link>CommonConnectionStrings.config</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

注意:如果您将此解决方案用于
连接字符串
,则不能有特定于项目的连接字符串,所有连接字符串都将从公共配置中复制。

我可以确认:RhysO的方法非常有效。我正在使用Visual Studio 2015社区和C#.Net 4.6.1。使用控制台和类库。
<appSettings file="CommonSettings.config">
    <add key="Value1" value="123" />
</appSettings>  
<None Include="..\CommonConnectionStrings.config">
  <Link>CommonConnectionStrings.config</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<connectionStrings configSource="CommonConnectionStrings.config" />