我正在尝试编写服务和配置应用程序。 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
答案 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;