解决方案范围广app.config / web.config?

时间:2010-07-01 13:54:42

标签: c# .net visual-studio visual-studio-2010

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

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

4 个答案:

答案 0 :(得分:1)

假设您的网站和网络服务都可以访问它,那么您可以使用appsettings“file”属性将设置存储在一个公共位置。 参考http://www.codeproject.com/KB/dotnet/appsettings_fileattribute.aspx 希望这有帮助!

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

<?xml version="1.0" encoding="utf-8" ?> <configuration> <!-- add you values or whatever here--> </configuration>

然后按@Sahuagin说,并将其添加为您的解决方案的链接。这是一种享受。

希望这有帮助。

答案 3 :(得分:0)

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

1。在您的Common,Class库项目中创建文件CommonSettings.config

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

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

注意:<appSetting>必须是您CommonSettings.config中的根元素(不要放在<configuration>下)

3。确保将CommonSettings.config文件复制到输出目录:

enter image description here

4。在所有其他项目的App.Config / Web.config文件中,添加以上通用设置

就这样...您的常用设置将包含在所有其他配置文件中。

<appSettings file="CommonSettings.config">
    <add key="Value1" value="123" />
</appSettings>  

注意:

  

为使此方法有效,应将共享配置文件复制到   项目的输出目录,因此它与常规目录相邻   App / Web.config文件。将现有的共享.config文件添加到   项目作为链接文件,并将其设置为“如果更新则复制”。你应该看到   .csproj文件中与此类似的内容:

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

您可以对ConnectionString执行相同的操作,将所有连接字符串复制到CommonConnectionStrings.config中,并在其他App.Config / Web.Config中,像这样引用它:

<connectionStrings configSource="CommonConnectionStrings.config" />

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