gpt4 book ai didi

c# - 如何在 .NET Core 项目中引用 .NET Framework 项目?

转载 作者:IT王子 更新时间:2023-10-29 04:24:58 29 4
gpt4 key购买 nike

我真的很想开始使用 .NET Core 并慢慢将应用程序和库迁移到它。但是,我无法现实地升级我的整个代码库以使用 .NET Core,然后在生产中完成测试和部署大量应用程序的过程。

例如,如果我创建一个新的 .NET Core 应用程序并尝试引用我的一个 .NET Framework 项目,我会得到以下结果:

The following projects are not supported as references: -Foobar.NetFramework has target frameworks that are incompatible withtargets in current project Foobar.NetCore.

Foobar.NetCore: .NETCoreApp,Version=v1.0

Foobar.NetFramework: .NETFramework,Version=v4.5

是否可以创建新的 .NET Core 应用程序并引用我现有的 .NET Framework 库?如果是这样,这样做的过程是什么?我花了几个小时浏览 Microsoft 的文档并在 GitHub 上搜索他们的问题,但我找不到任何关于如何实现这一目标或他们对此过程的长期愿景的官方信息。

最佳答案

老问题,但随着 .NetStandard 2.0 和 .netcore 2.0 以及 vs2017.3 的发布,游戏规则发生了变化。

您可以将完整的 .NET Framework (TFM) 与 .NetCore 2.0 一起使用,但如何使用?

  1. 在 Visual Studio 2017.3 中,您可以直接从 .NetCore2 项目中引用完整的 .NET Framework(任何版本)。

  2. 您可以构建 .NetStandard2 类库并引用您的 TFM。然后从您的 .NetCore2 项目中引用您的 .NetStandard2 库。

例如,从 .NetStandard2 引用 json.net net45。浏览到文件夹并选择版本 net45(不是 netstandard1.3)

查看下图中的依赖项,没有看到黄色警告。

enter image description here

  1. 即使 Nuget 库尚未准备好移植到 .Netstandard 2,您也可以使用库中符合 net461 的任何 API。

引用带有链接的 .NET Core 2/Standard 2.0 公告:

.NET Core 2.0 is able to freely reference libraries that have been built for .NET Framework up to version 4.6.1

However, some libraries may fail at run time if they try to use API methods that aren't available on .NET Core

引用:.NET Core App target .NET framework 4.5.2 on Linux

A need to use third-party .NET libraries or NuGet packages not available for .NET Core

So only in cases where the libraries or NuGet packages use technologies that aren't available in .NET Standard/.NET Core, you need to use the .NET Framework.

引用:Choosing between .NET Core and .NET Framework for server apps

You can now reference .NET Framework libraries from .NET Standard libraries using Visual Studio 2017 15.3. This feature helps you migrate .NET Framework code to .NET Standard or .NET Core over time (start with binaries and then move to source). It is also useful in the case that the source code is no longer accessible or is lost for a .NET Framework library, enabling it to be still be used in new scenarios.

引用:Announcing .NET Core 2.0

关于c# - 如何在 .NET Core 项目中引用 .NET Framework 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38148128/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com