c# - 如何知道我是在 .NET Framework 还是 .NET Core 下运行
问题描述
假设我在 Nuget 中有一个库,它编译netstandard2.0
为支持netcoreapp2.1
和net471
.
现在,在编译时,我不知道我是在net471
,还是(我强调这一点,因为我不能只将我的 dll 编译为两者,因为如果调用程序集是,我仍然不知道是什么关于入口组件)。netcoreapp2.1
netstandard2.0
netstandard
net471
netstandard2.0
如何在运行时知道我运行的是哪个 TargetFramwork?
我知道有这样的解决方案:
Assembly.GetEntryAssembly()?
.GetCustomAttribute<TargetFrameworkAttribute>()?
.FrameworkName
但是如果你在 MSTest 和 中运行它net471
,Assembly.GetEntryAssembly() == null
那么我不想在使用我的 Nuget 的项目中破坏测试。
解决方案
推荐阅读
- java - Maven POM file for running tests(not JUnit)
- java - How to implment SpanQuery with MultiFieldQuery in java using lucene
- c# - 将字符串数组与“FileInfo / GetFiles”进行比较
- java - 将循环遍历数组java中的条目的while循环
- javascript - One or more parameter values were invalid: An AttributeValue may not contain an empty string
- jquery - 如何使克隆元素更改其关联(克隆)亲属
- ajax - 模态表单未提交用户输入
- navigation-drawer - Navigation drawer not displaying up icon when opened
- hubspot - Hubspot 无法创建工作流扩展
- python - 以字典的形式表示数据集:key = (movie_title,movieId) value = array