2016-10-17 9 views
1

クラシック.Net 4.6.2と.Netコアプロジェクト間でNugetパッケージを使用して共有できる.NetコアでC#ライブラリを作成するにはどうすればよいですか。クロスプラットフォームライブラリの開発については、hereというドキュメントを読んでいます。だから私は、セットアップクロスプラットフォーム.netコアライブラリを作成するには?

{ 
    "version": "1.0.0-*", 

    "frameworks": { 
    "netstandard1.6": { 
     "dependencies": { 
     "NETStandard.Library": "1.6.0" 
     } 
    }, 
    "net462": {   
    } 
    } 
} 

以下のように私のproject.jsonは、それから私は、次のコマンド

dotnet pack -c Release 

を実行することにより、nugect pckageを作成し、nugetパッケージを発表しました。私のパッケージ名はDTOです。私は問題なくnugetパッケージをインストールすることができた私のtraget .NETのコアプロジェクトで

。しかし、私が古典的な.net 4.6.2プロジェクトにインストールしようとするとエラーが発生する

install-package:パッケージ 'DTO 1.0.0'をインストールできませんでした。 '.NETFramework、Version = v4.6.2'を対象とするプロジェクトにこのパッケージをインストールしようとしましたが、パッケージには アセンブリ参照またはその フレームワークと互換性のあるコンテンツファイルが含まれていません。詳細については、パッケージ作成者にお問い合わせください。ライン:1 CHAR:1 +インストール・パッケージDTO + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified:(:) [インストール・パッケージ]、例外+ FullyQualifiedErrorId : NuGetCmdletUnhandledException、NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

nugetパッケージが私のローカルサーバー上でホストされていることに注意してください。

+0

2つのノート:あなたは余分 'net462'をターゲットにする必要がある理由。 .NET Framework 4.6.2は 'netstandard1.5'以下を読み込むことができます。私はあなたが1.6必要とすることを非常に疑う。低い方が良いです。 2番目の注記:解凍したナゲットを見ていただけますか? – Thomas

+0

@トーマスなぜ1.6が1.5より優れていますか? – LP13

+1

あなたは[こちら]の詳細情報を見つけることができます(https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md) –

答えて

1

あなたは正しい方向を取りました。複数のフレームワーク間で互換性が必要な場合は、.NET Standardを対象とすることが適切です。

ただし、各フレームワークでサポートされている.NET標準のバージョンについては、このマトリックスを参照してください。 (あなたが指定されているようではない1.6)

https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md#mapping-the-net-platform-standard-to-platforms

は、この表によると、の.NET Framework 4.6.2が.NET標準1.5をサポートしています。あなたの答えはここにあります。 .NET標準1.5でサポートされているアセンブリの詳細については

、このリンクをクリックしてください:

https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md#list-of-net-corefx-apis-and-their-associated-net-platform-standard-version