2016-10-06 5 views
1

私はNuGetを作成する.NET 4.5で作成した既存のオープンソースライブラリを持っています。問題は、このNuGetパッケージは.NET 4.5アプリケーションでのみ使用できることです。既存のクラスライブラリに.NETコアサポートを追加します。

同じNuGet上で.NET 4.5と.NET Coreの両方をサポートしたいと思っています(既にその行JSON.NETを実行しているパッケージを見てきました) - どのように既存のNuGetにサポートを追加できますか?そして、どのように私は複数の.NETバージョンに単一のクラスライブラリでサポートするのですか?

+0

ユーザーからの要望が強い場合を除き、待ちます。それが私のオープンソースプロジェクトのためのものです。現在のツーリングはあまりにも苦痛で、おそらくあなたの時間を無駄にしたくありません。最近、Microsoftによっていくつかの約束がなされました。https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/ –

+0

@LexLiありがとうございます。現在入手可能なツールは何ですか? – developer82

+0

http://dot.netに必要なものはすべてあります。 –

答えて

1

あなたはnet45ターゲットのcsprojを使用し続けると、「net45」と「netstandard1.x」フレームワーク(サンプルとして使用project.json of my library)の両方を対象とproject.jsonを追加することができます:あなたが定義することができ

"frameworks": { 
    "net45": { 
     "frameworkAssemblies": { 
     "System.Data": "", 
     "System.ComponentModel.DataAnnotations" : "" 
     }, 
     "buildOptions": { 
     "define": [] 
     } 
    }, 
    "netstandard1.5": { 
     "dependencies": { 
     "NETStandard.Library": "1.6.0", 
     "System.Data.Common": "4.1.0", 
     "System.Reflection": "4.1.0", 
     "System.Reflection.Primitives": "4.0.1", 
     "System.Threading": "4.0.11", 
     "System.Threading.Tasks": "4.0.11", 
     "System.ComponentModel.Annotations": "4.1.0" 
     }, 
     "buildOptions": { 
     "define": [ "NET_STANDARD" ] 
     } 
    } 

注意net45またはnetcore固有のコードスニペットの条件付きコンパイル定数。あなたはproject.jsonを持っている場合、あなたはnet45とnetstandardの両方が含まれ、次のコマンドを使用して構築しますnugetパッケージを作成することができる

> dotnet pack --configuration Release 

「DOTNETパックは」からの情報を使用していないことを忘れないでくださいnuspecファイルとすべてのメタデータがproject.jsonに存在する必要があります。

関連する問題