提问人:user3012708 提问时间:6/9/2023 最后编辑:Panagiotis Kanavosuser3012708 更新时间:6/9/2023 访问量:82
如何创建同时使用 .NET Framework 和 .NET Core 配置的 NuGet 包?
How can I create a NuGet package that uses both .NET Framework and .NET Core configuration?
问:
我正在尝试允许构造函数接受 .Net 的 IConfiguration,以及对 .Net Framework/Standard 的 ConfigurationManager 或类似引用。
我正在尝试为一个类创建一个条件构造函数,该类需要知道它针对哪个运行时运行 - 即它是在框架中还是在 .NET 解决方案中。
此类所在的解决方案是针对 .Net Standard 编写的,但将由 .Net Framework 4.8、.Net Standard 2.0 和 .Net 6/7 应用程序/包使用。
最初我以为条件编译会是答案,以这个为例:
#if NETSTANDARD || NETFRAMEWORK
//do stuff
#elif NET
//do different stuff
#endif
但是,这与编译时间无关 - 它将始终编译为 .Net Standard。
有没有办法弄清楚正在使用什么运行时,并以这种方式有条件地呈现构造函数?
我可以只包含所有构造函数并包含关于何时使用什么的注释,但我觉得这将被忽略,如果我能强制正确的用法,它会更简单。
我正在尝试允许构造函数接受 .Net 的 IConfiguration,以及对 .Net Framework/Standard 的 ConfigurationManager 或类似引用。
更糟糕的是 - 我试图在没有不同编译的情况下做到这一点,因为这是我更新的包在 .Net 和 Framework 之间功能不同的唯一实际区域。
答: 暂无答案
评论
Microsoft.Extensions.Configuration
是一个 .NET Standard 2 库,可以在 .NET Framework 中使用。有一个兼容包,旨在简化从 .NET Framework 到 .NET Core 的迁移。您不必使用不同的构造函数Sysctem.Configuration.ConfigurationManager
app.config
MemoryConfigurationSource
IConfiguration
app.config