2016-11-02 4 views
0

Visual Studio 2015 Update 3を実行しています.Net CoreアプリケーションにRedis Cacheを使用しようとしています。以来、開発されたパッケージは、.Net標準ライブラリを対象としています。私はgithubからコードをダウンロードし、依存関係を変更しようとしています。ここで依存関係を解決しようとしています:.NET標準ライブラリをNETコアに変更する - Microsoft.Extensions.Primitives

は、プロジェクトされています

enter image description here

まず、私がターゲットにする抽象クラスライブラリをチャゲしようとしています。 ネットコア、次に、Microsoft.Extensions.Primitivesを追加しようとしました。バージョン1では.NET Coreがサポートされていないためです。私は、最終的な事前のパッケージを追加しました:

Install-Package Microsoft.Extensions.Primitives -Version 1.0.0-rc1-final -Pre 

それは解決できない、

依存Microsoft.Extensions.Primitives> = 1.0.0-RC1-最終的には解決できなかったという。

どのように.NETコアで動作するように修正できますか? .NET Core 1と.NET Core 5の違いは、インストールされたパッケージの依存関係ですか?すべてのパッケージは、.NETの標準Libaryはなく、.NETのコアをサポートするのはなぜ

enter image description here

+0

古いタグを使用しているようです。タグ1.0.0では完璧に動作します。 project.jsonの変更のみが必要です – Tseng

答えて

1

ダンノーあなたは何をしているのですが、rc1の参照は間違っているように見えます。これでASP.NET Core RTMは数ヶ月間存在しなくなりました。

私は1.0.0ソースを取得しました(特に1.0.0タグを選択する必要があります。マスターブランチはASP.NET Core 1.1に基づいています)。私は変更

だけの事は(私がMicrosoft.Extensions.Caching.Redis.Test除いて、他の無負荷無関係なプロジェクトとテストプロジェクトをアンロードproject.jsonある

これは()Microsoft.Extensions.Caching.Redisの私のproject.jsonです。

{ 
    "version": "1.0.0", 
    "description": "Distributed cache implementation of Microsoft.Extensions.Caching.Distributed.IDistributedCache using Redis.", 
    "packOptions": { 
    "repository": { 
     "type": "git", 
     "url": "https://github.com/aspnet/caching" 
    }, 
    "tags": [ 
     "cache", 
     "distributedcache", 
     "redis" 
    ] 
    }, 
    "buildOptions": { 
    "warningsAsErrors": true, 
    "keyFile": "../../tools/Key.snk", 
    "nowarn": [ 
     "CS1591" 
    ], 
    "xmlDoc": true 
    }, 
    "dependencies": { 
    "Microsoft.Extensions.Caching.Abstractions": "1.0.0", 
    "Microsoft.Extensions.Options": "1.0.0", 
    "StackExchange.Redis.StrongName": "1.1.608" 
    }, 
    "frameworks": { 
    "netstandard1.5": { }, 
    "net451": { 
     "dependencies": { }, 
     "frameworkAssemblies": { 
     "System.Runtime": { 
      "type": "build" 
     } 
     } 
    } 
    } 
} 

に必要な変更なしMicrosoft.Extensions.Caching.Abstractions

代わりにStackExchange.Redisを使用できますStackExchange.Redis.StrongNameという名前の強い(署名付き)ではありません。このように作成/コンパイルされたパッケージが他のパッケージと同じキーで署名されているかどうかは不明です。後で問題が発生する可能性があります。署名されていないoneを使用すると、アプリケーションの名前が強い場合(またはすべてのアセンブリの署名が強いというビジネス要件がある場合)、問題が発生する可能性があります。

これはコンパイルされ、単体テストが合格し、それ以上テストしませんでした。あなたの質問の残りの部分については

」.NETコア5" nuget目標は、ASP.NETコアRC1まで使用されたdnx50です。 rc2 ASP.NET Coreをdotnet-cliに切り替え、DNXは現在サポートされておらず、それ以上のアップデートは受け付けません。rc2ではnetstandardが導入され、利用可能なプラットフォーム(.NET Framework、.NET Core、WinRT/WindowsPhone/Windows8/Windows10、mono、Xamarinなど)のほとんどを対象とするクラスライブラリの作成が簡単になりました。 .NET Standard Libraryについて詳しく知ることができます。

+0

私は 'netcoreapp1.0'を使用しているので' netstandard1.5'を取り除く必要があります。私のASP.NET以来 'Redis.Cache'を参照するためにはどうしたらいいですか?コアアプリケーションは 'netcoreapp1.0'も参照し、redisキャッシュ依存を解決できません。 – Coding

+0

'netcoreapp1.0'は' netstandard1.5'を処理できるはずです。 'netstandard'はクラスライブラリ用、' netcoreapp1.0'は実行可能ファイル用ですhttp://docs.microsoft.com/en-us/dotnet/articles/standard/library。あなたの質問にリンクされている依存関係は、netstandardが始まる前のpre-rc2回の古代の遺産です。 – Tseng

+1

前の質問で直面していた問題は、ME:Caching.Redisパッケージが 'netstand1.x ' 。上記の変更により、 'netstandard1.5'ターゲットが追加され、StackExchange.Redisクライアントの更新版が使用されます。 – Tseng

関連する問題