2016-07-01 18 views
20

私は本当に.NET Coreを使い始め、アプリケーションとライブラリをゆっくりと移行したいと思っています。しかし、私は.NET Coreを使用するためにコードベース全体を現実的にアップグレードすることはできません。そして、実稼働環境に多数のアプリケーションをテストして展開するプロセスを経て行きます。一例として、.NET Coreプロジェクトで.NET Frameworkプロジェクトを参照するにはどうすればよいですか?

、私は新しい.NETのコアアプリケーションを作成し、私は次のことを得る私の.NET Frameworkのプロジェクトの一つを参照しようとした場合:

次のプロジェクトが参照としてサポートされていません。 - Foobar.NetFrameworkには、現在のプロジェクトFoobar.NetCoreの ターゲットと互換性のないターゲットフレームワークがあります。

Foobar.NetCore:.NETCoreApp、バージョン= v1.0の

Foobar.NetFramework:.NETFramework、バージョン= V4.5

が新しい.NETのコアアプリケーションを作成することが可能であり、私の既存の.NET Frameworkライブラリを参照しますか?もしそうなら、それを行うプロセスは何ですか?私はMicrosoftのドキュメントを読んで、GitHubの問題を調べるのに数時間を費やしましたが、これを達成する方法や長期的なビジョンがこのプロセスにどのようなものか公式には何も見つかりません。

+0

短い答え:あなたができない、今のところ。 –

+0

この質問は、あなたにいくつかの使用の可能性があります:http://stackoverflow.com/questions/39041097/how-do-i-add-the-npoi-library-to-a-net-core-1-0-project/39041098#39041098 – AperioOculus

答えて

10

はい、私たちは現在同じことを試みています。このトリックは、同じ.NETフレームワークをサポートしていることを確認することです。 project.jsonファイル内に、フレームワークが含めるプロジェクトのフレームワークと一致することを確認してください。 FYI

"frameworks": { 
    "net46": { --This line here <<<< 
     "dependencies": { 
     "DomainModel": { 
      "target": "project" 
     }, 
     "Models": { 
      "target": "project" 
     } 
     } 
    } 
    }, 

:たとえば、あなたはこれを達成するために、あなたの.NET Coreまたはあなたの古いプロジェクトの枠組みを変更する必要があります。上記のようにproject.jsonファイルを編集するだけで.NET Coreを変更できます。 .NETプロジェクトでは、プロジェクトを右クリックしてプロパティを開くことで同じことができます。そこでフレームワークレベルを変更します。

2つのプロジェクトフレームワークをマッチさせたら、それを含めることができます。がんばろう!

+5

そして、具体的には、これは混乱する可能性があるため、ASP.NETコアを.NETコアとして実行するのではなく、完全な.NET FrameworkでASP.NETコアを実行しています。 .Net Frameworkと.Net Coreの区別は重要です。なぜなら、最初のものは私たちが過去に持っていたもので最新のASP.NETを実行しており、もう1つはクロスプラットフォームである小さな.Netコンポーネントで動作しているからです。 –

+0

私はまだproject.jsonスキーマが新しく、ドキュメントは疎そうです。私が "My.Test.Project"と呼ばれるプロジェクトを持っていたら、上記のあなたの例を挙げて、どのように追加しますか? –

+2

project.jsonファイルに依存関係を追加しようとすると、次のようなエラーが表示されます。 '.NETFramework、Version = v4.6'に対して 'My.Test.Project(> = 1.0.0)'を解決できません。違いがある場合、プロジェクトはNuGetパッケージではありません。 –

5

古い質問ですが、.NetStandard 2.0と.netcore 2.0とvs2017.3のリリースでゲームが変更されました。

.NetCore 2.では完全な.Net Framework(TFM)を使用できますが、どのように使用できますか?

1)vs2017.3では、.NetCore2プロジェクト内からフル.Net Framework(任意のバージョン)を直接参照できます。

2).NetStandard2クラスライブラリを構築し、TFMを参照できます。 .NetCore2プロジェクトから.NetStandard2ライブラリを参照してください。

たとえば、.NetStandard2のjson.net net45を参照してください。 フォルダを参照し、バージョンnet45(netstandard1.3ではない)を選択してください

以下の画像の依存関係を参照してください。黄色の警告は表示されていません。

enter image description here

3)でも.Netstandard 2に移植されるnugetライブラリ準備ができていない場合、あなたはnet461に準拠したライブラリ内の任意のAPIを使用することができます。.NETコア2.0を自由バージョン4.6.1

までの.NET Framework用に構築されたライブラリを参照することができる

:リンクと.NETコア2 /標準2.0発表のために引用

.net core app target .net framework 4.5.2 on Linux

01:彼らは

リファレンス.NETのコア上で利用できないAPIメソッドを使用しようと

しかし、いくつかのライブラリは、実行時に失敗する可能性があります

ライブラリやNuGetパッケージは、.NET標準/で利用できない技術を使用の場合でだけそう

.NETコア

には使用できませんサードパーティ製の.NETライブラリやNuGetパッケージを使用する必要があります。 NETコアを使用する必要があります。

参考:Choosing between .NET Core and .NET Framework for server apps

あなたは今のVisual Studio 2017を使用して15.3 .NET標準ライブラリから.NET Frameworkのライブラリを参照することができます。この機能は、.NET Frameworkコードを.NET Standardまたは.NET Coreに移行する際に役立ちます(バイナリから開始してソースに移動します)。また、ソースコードが.NET Frameworkライブラリでアクセスできなくなった場合や、新しいシナリオで引き続き使用できるようにする場合に役立ちます。

参考:Announcing .NET Core 2.0

関連する問題