App.config似乎被忽略了

时间:2010-12-25 20:05:34

标签: c# app-config

我是这个类库,是重构操作的结果。 我添加了一个App.config文件并添加了这样的内容:

<configuration>
    <connectionStrings>
        <add name="MyDatabase" connectionString="Data Source=server;Initial Catalog=database;User ID=userid;Password=password" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

但是当我运行应用程序时,调试学会了我这完全被忽略了。即时窗口告诉我:

ConfigurationManager.ConnectionStrings[0]
                 {data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true}
    base {System.Configuration.ConfigurationElement}: {data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true}
    ConnectionString: "data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
    Key: "LocalSqlServer"
    Name: "LocalSqlServer"
    Properties: {System.Configuration.ConfigurationPropertyCollection}
    ProviderName: "System.Data.SqlClient"

我已经在bin目录中检查了生成的配置文件,其内容与App.config相同。

我尝试使用以下方法阅读App.config:

ConfigurationManager.ConnectionStrings[Constants.Connections.DevConnection].ConnectionString

没有什么不寻常的我会说,但出了什么问题?

3 个答案:

答案 0 :(得分:7)

类库没有自己的配置;对于名为Foo.exe的应用程序,您需要将配置放在Foo.exe.config中。这里的例外是web应用程序,其中web.config是命名约定。

答案 1 :(得分:5)

此connectionString应位于您正在运行的exe的相应app.config中。

答案 2 :(得分:0)

文件是否被复制到输出?其次,连接字符串应该可以从您的代码生成的AssemblyName.Settings.Properties类中访问。