【问题标题】:App.config seems to be ignoredApp.config 似乎被忽略了
【发布时间】:2018-05-15 16:20:32
【问题描述】:

我有这个类库,这是重构操作的结果。 我添加了一个 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

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

【问题讨论】:

标签: c# app-config


【解决方案1】:

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

【讨论】:

  • 那么处理 DLL 的连接字符串的正确方法是什么?
  • 通过构造函数或类似方式?
【解决方案2】:

这个connectionString应该在你正在运行的exe对应的app.config中。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 2016-09-30
      • 2012-03-11
      • 1970-01-01
      • 2017-12-05
      • 2012-03-08
      • 2015-12-11
      • 2014-04-15
      • 1970-01-01
      相关资源
      最近更新 更多