在不相关的更改后,在 System.Configuration 中使用类的功能消失了

Ability to use classes in System.Configuration disappeared after unrelated change

提问人:Stanley Friesen 提问时间:7/21/2023 最后编辑:marc_sStanley Friesen 更新时间:7/21/2023 访问量:25

问:

我有一个 C# 库项目,该项目使用 .NET Standard 2.1 在 Visual Studio 2022 中正确构建。在其中,我使用相关项目来读取项目配置。System.Configuration.ConfifurationSection

昨天我从使用 Log4net 进行日志记录切换到使用 Serilog 进行日志记录。一旦我完成了它,我就删除了对 Log4net 的包引用。一旦我这样做了,我就开始在系统命名空间中收到有关类等的错误。

例如:

错误 CS0246:找不到类型或命名空间名称“ConfigurationSection”(是否缺少 using 指令或程序集引用?

我的代码没有专有材料的一个版本是:

using System.Configuration;

namespace MyNamespace
{
    public class MyConfig : ConfigurationSection
    {
        // ...
    }
}

请注意,删除包引用是我自上次成功构建以来所做的唯一更改。

关于如何解决这个问题的任何想法?这显然不是通常缺少的 using 指令。

  • C# 工具:4.6.0-3.23259.8

  • ASP.NET 和 Web 工具:17.6.326.62524

  • 我尝试使用命名空间显式限定名称ConfigurationSectionSystem.Configuration

  • 我试图重建解决方案

  • 我尝试退出并重新启动Visual Studio

这些都没有任何区别,除了在第一种情况下,错误消息的措辞略有变化。

我尝试在 Web 上搜索答案,但所有答案都是针对早期版本的 Visual Studio 或其他 IDE。没有一个是相关的。

从调试版本切换到发布版本“修复”了该问题。但是保持这种方式会让我们没有用于测试的调试版本。

C# system.configuration net-standard-2.1

评论

0赞 Jonathan Alfaro 7/21/2023
log4net 可能引用了旧版本的 net。
0赞 Stanley Friesen 7/21/2023
那么,我该如何解决呢?什么取代了 System.Configuration?此库需要配置才有用,因为每个主机上的配置都不同。
0赞 Jonathan Alfaro 7/21/2023
您应该使用 appsettings.json,这是一种为 Net Apps 进行配置的新方法。 甚至 Serilog 也支持这种新方式

答: 暂无答案