首页 文章

为什么Dot Net Core类库或控制台应用程序可以引用Dot Net 4.6类库?

提问于
浏览
0

我在Google上搜索并获得如下知识:

  • Net Core和Net Framework(4.6 . *)是.NET运行时的两种不同实现,它们是平台

  • .NET Standard定义了一组.NET平台同意实现的API,它不是运行时

所以我完全理解.NET Core控制台应用程序和.NET 4.6.1控制台应用程序可以添加对某个.NET标准库的引用,只要它们是兼容的 .

困惑我的是那个

  • Net Core 1.1控制台应用程序可以添加4.6.1类库的引用并运行良好

  • 4.6.1控制台应用程序无法添加对Net Core 1.1类库的引用 .

我用VS2017 15.3对此进行了测试,我知道有一些关于如何在Core应用程序中添加对4.6.1 dll的引用的讨论,但所有这些都讨论了旧的核心项目(使用project.json),这个项目已经过时了官方RTM VS2017 . 为什么1可以,2不可能?

谢谢

1 回答

  • 0

    这样做是为了能够重用现有项目和预构建程序集(dll文件),前提是它们只使用.NET Standard 2.0中的API(类型,方法等) .

    你是对的,它似乎违反直觉和"should not work" . 但是,有一个小的compatibility layer加载.NET Framework程序集但是 they may fail if they use unsupported API ,因此使用此兼容性机制是危险的,并且应该在使用.NET Portability Analyzer之前检查项目/程序集 .

相关问题