2016-09-27 12 views
2

私は、完全に.NET Core、つまり異なる環境で実行可能なプロジェクトである新しいプロジェクトを作成しようとしていましたが、厳密な.NET Framework(4.5)で動作する以前の多くのプロジェクトを参照しています。.NET Frameworkで.NET Frameworkを使用することは可能ですか

これまでのところ私が行うことができました何JSONを投影する.NET 461フレームワークを追加した、

"frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ], 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "version": "1.0.1", 
      "type": "platform" 
     }, 
     "Niloosoft.Hunter.ServicesDataAPI": { 
      "target": "project" 
     } 
     } 
    }, 
    "net461": { } 
    } 

それは、パッケージの復元に成功し、私も.NETフレームワークの参照を追加するために管理しますが、私それらを正しく使用することができないと私はこのエラーを取得します。 enter image description here

だから、私の質問は、以下と予想されるフレームワーク(私は相互運用性を必要と)スワップせずに私の.NET Frameworkの参照を使用することが現在可能である:

> #if NET45 
//specific code for .NET 4.5 
    > # 

のノートを取るために何かを、私のプロジェクトは.NETCoreAppでサポートされていないので、.NET Frameworkが必要です。恐れて、私がしようとしていることが可能かどうかを知る必要があります。

+1

あなたのライブラリはWindows8/WindowsPhone8でPCLをサポートしていますか? – Tseng

答えて

5

いいえ、.NET 4.5のみを対象とするライブラリを.NETコアで実行することはできません。あなただけdnxcore5.0は、netstandard1.xとDNXの賛成で廃止されましたdotnet5.xは(DOTNETのCLIの賛成)に放棄されているターゲットnetstandard1.xnetcoreapp1.x(だけでなく、古いライブラリをターゲットライブラリを使用することができます。

をあなたはかもしれしかし、 APIの表面がずっと小さく、Windows 8.x/Windows Phone 8.xの両方で動作するAPIしかないため、.NET 4.5 Windows Phone 8.xまたはWindows 8.xを対象とするPCLを使用することができます.NET 4.5+(つまり、.NET Coreが基づいているSystem.Runtimeを使用します)

ライブラリ.NET 4.5 + Win8以上のPCLでない場合は、置換ライブラリを探して#ifディレクティブを使用するか、net451/net461をターゲットにしてモノラル(.NET Coreなし)で実行する必要があります。

+0

PCLtだけでなく、任意のライブラリを使用できます。問題は、それらのライブラリで.netコアをターゲットにすることができないことです。 .net 4.6.1だけをビルドするために '#if 'ディレクティブを使わなければなりません。あなたの機能は.netコアビルドでは動作しません。 – gilmishal

+0

@gilmishal:しかし、.NETコアをターゲットにすることは、OPが望んでいるものとまったく同じです。.NETコアを対象とするライブラリを置き換えない限り、彼はそうすることはできません。 PCL( 'portable-net45 + win8'のような)は、.NETコアと非常によく似たAPIサーフェスを持っているため、.NETコアを実行することはできません。すべて。 – Tseng

関連する問題