首页 > 解决方案 > 如何知道我是在 .NET Framework 还是 .NET Core 下运行

问题描述

假设我在 Nuget 中有一个库,它编译netstandard2.0为支持netcoreapp2.1net471.

现在,在编译时,我不知道我是在net471,还是(我强调这一点,因为我不能只将我的 dll 编译为两者,因为如果调用程序集是,我仍然不知道是什么关于入口组件)。netcoreapp2.1netstandard2.0netstandardnet471netstandard2.0

如何在运行时知道我运行的是哪个 TargetFramwork?


我知道有这样的解决方案:

Assembly.GetEntryAssembly()?
    .GetCustomAttribute<TargetFrameworkAttribute>()?
    .FrameworkName

但是如果你在 MSTest 和 中运行它net471Assembly.GetEntryAssembly() == null那么我不想在使用我的 Nuget 的项目中破坏测试。

标签: c#.net-core.net-assembly

解决方案


推荐阅读