【问题标题】:Using a library that makes use of the old style "appSettings" in a .Net Core project在 .Net Core 项目中使用利用旧式“appSettings”的库
【发布时间】:2020-04-15 12:02:47
【问题描述】:

我有一个在 app.config 配置文件中使用旧样式 appSettings 的库。例如:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="exampleKey" value="exampleValue" />
  </appSettings>
</configuration>

我意识到这不是一个好习惯,但我无法修改这个库,需要按原样使用它。

在 .Net Core 项目中(我正在单元测试项目中尝试这个,但也需要它在 Asp.Net Web API 项目中工作),我如何配置应用程序配置文件以便当库尝试加载它的 appsettings(可能是使用ConfigurationManager.AppSettings 命令)它会正确加载它们吗?这可能吗?

【问题讨论】:

  • 您确定这是该库中唯一依赖 .NET Framework 的东西吗?我不知道这对您是否实用,但您可以使用 Web 服务包装库并通过 RPC 而不是进程内调用它。
  • @FedericoDipuma - 感谢您的链接。不完全是,我不认为。我已经安装了 System.Configuration.ConfigurationManager NuGet 包,但我的 Web 应用程序中的“web.config”文件在运行时没有被使用。而是使用我的用户目录中以“Url_vs0cocxwpbys4l4e3gswszew4ioczhkr\\1.0.0.0\\user.config”结尾的文件。
  • 啊!我想我已经部​​分工作了,感谢这个答案:stackoverflow.com/questions/40186445/…

标签: c# .net-core configuration appsettings


【解决方案1】:

我确实设法从其他 Stack Overflow 线程中拼凑出这个问题的答案,但以防万一有人遇到这个问题:

在实际的 Web 应用程序中,只需创建一个 app.config 文件(与您也拥有的任何 web.configappsettings.json 文件一起放置)并将其构建操作设置为 ContentCopy if newer 即可解决此问题.有关详细信息,请参阅this 线程。

在单元测试项目中,通过与上述相同的方式创建 app.config 解决了这个问题,但还在 csproj 文件中添加了一个构建操作,指示将文件复制到输出目录并重命名为 @987654328 @。有关详细信息,请参阅this 线程。

【讨论】:

    猜你喜欢
    • 2019-06-12
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2018-03-29
    • 2017-04-28
    • 1970-01-01
    相关资源
    最近更新 更多