質問: 新しい.netコアコンソールアプリケーションを作成し、すべてのBLとDALを.net FrameworkにあるNuGetパッケージに入れました(この中のいくつかのクラスライブラリは.Net Framework 2.0にあります)。このNuGetを.Coreライブラリにインストールすると、正常に機能しなくなります。 だから問題は、.Net Framework(4.7)クラスライブラリを追加してこのNugetとEFCoreをインストールすると、問題が発生するのでしょうか。 .Netコアコンソールアプリケーションでこのクラスライブラリを使用できるようになりますか? これまでに行ったこと: このNuGetおよびEF Coreにインストールされているソリューションに.netフレームワーククラスライブラリを追加しましたが、クラスライブラリにエラーは表示されません。
回答: いいえ、それは悪い考えであり、機能しません。 .NET Frameworkでコンパイルされたライブラリは、.NET Coreプロジェクトで使用および参照することはできません。逆も同様です。 NuGetパッケージでそれを行うことができますが、コードを.NET Standardに変換することで失敗のリスクを減らすことをお勧めします。これは、.NET Frameworkクラスライブラリに.NET Standard以外の名前空間とクラスが含まれていない限り、.NET Coreで安全に使用できるためです。 この公式の.NET標準互換性リファレンスを参照してください: https : //docs.microsoft.com/en-us/dotnet/standard/net-standard また、 https : //apisof.netにアクセスして、APIの互換性を手動で確認することもできます。 **更新1:** Jon Skeetのコメントのおかげで、.NET Frameworkを対象とするnugetパッケージを使用して.NET Frameworkを.NET Coreに参照する方法があるようです! https://docs.microsoft.com/en-us/dotnet/core/porting/third-party-deps#net-framework-compatibility-modeを参照してください ただし、特にサードパーティのライブラリが.NET Frameworkでのみ利用可能なクラスで、Workflow Foundationやサーバー側WCFなどの.NET Coreに移植されていないクラスを使用している場合は、機能しない可能性があります。 私は自分の回答もレッスンとして残さなければならないので、私の回答を削除するつもりはありません:) **更新2** :Jonによって提案されたように、NuGetパッケージ参照で実行できる唯一の方法から更新するように言い換えます。