2013-03-19 57 views
0

好吧,我试图编写一个服务和配置应用程序。 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

请帮助。

回答

1

这里的问题是行System.Configuration.ConfigurationManager.AppSettings("ConnectionString")正在您的应用程序的app.config文件中寻找关键ConnectionString

事实上,你已经在你的app.config文件中包含了file键,并不奇怪地告诉ConfigurationManager从另一个文件加载设置。如果这是你想要的,你将不得不读取file密钥的设置,然后从该文件手动加载配置。

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

+0

Miky使用connectionStrings section,把它归结为头在其他的事情,被锈蚀,不看到树木的木材。我现在要这样,只是得到的语法 – 2013-03-19 14:21:57

+0

好吧,走的路(经过太多搞砸)是一个单独的配置文件,具有在Windows应用程序数据文件夹中的自定义部分和类。该文件夹是由公司名称和应用程序名称定义的,并且可以通过文件观察器从常见的dll访问以提供自动更新 – 2013-03-22 19:33:37

0

添加在现有的装配参考在你的Add Reference Popup

.Net section但我建议你在你的配置文件

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

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