多个应用程序单个配置文件

时间:2013-03-19 13:31:04

标签: service .net-4.0 app-config

我正在尝试编写服务和配置应用程序。 VB / C ++ 2010我在谷歌上有很多点击,但它们似乎已经过时了。到目前为止我所拥有的是一个包含单个表单应用程序和服务应用程序的项目。单个表单应用程序有一个“app.config”文件,我添加了一个部分:

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

在解决方案中,我添加了一个“settings.config”文件,其内容为:

<?xml version="1.0" encoding="utf-8"?>
<appSettings>
    <add key="Setting1" value="This is Setting 1 from settings.config" />
    <add key="Setting2" value="This is Setting 2 from settings.config" />
    <add key="ConnectionString" value="ConnectString from settings.confg" />
</appSettings>

我添加了对C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Profile \ Client \ System.Configuration.dll

的引用 表单应用程序和服务应用程序中的

在非常简单的表单应用程序中,我有以下代码

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

        Dim s As String = _
 System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
        TextBox1.Text = s
    End Sub

它不起作用!现在显然我错过了一些东西。它可能很简单。但我有限的理解是,这是由我的配置文件自动配置的? MS以他们通常的帮助方式似乎只提供2012年的样品和净4.5或更高。我需要这个工作在2003服务器(以及),所以我限于净4.0

2 个答案:

答案 0 :(得分:1)

问题在于,System.Configuration.ConfigurationManager.AppSettings("ConnectionString")行正在您的应用的ConnectionString文件中查找密钥app.config

您在app.config文件中包含file密钥的事实并没有神奇地告诉ConfigurationManager从其他文件加载设置。如果这是您想要的,您必须阅读file密钥的设置,然后从该文件手动加载配置。

自.Net的早期版本以来,这没有改变,但我不确定为什么你会被这些例子冲突。

答案 1 :(得分:0)

.Net section

Add Reference Popup中添加对现有装配的引用

但我建议您在配置文件中使用connectionStrings section

<connectionStrings>
<add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>

string connStr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;