2016-07-26 8 views
3

私のプロジェクトをASP.NET Core 1.0でMicrosoft Azure KeyVaultに統合したいと思います。しかし、Microsoft.Azure.KeyVaultパッケージは "netcoreapp1.0"フレームワークと互換性がありません(NuGetパッケージマネージャを使用してパッケージをダウンロードしようとしましたが、 "互換性のないパッケージ"というエラーメッセージが表示されます)。Azure KeyVaultを使用したASP.NETコア - KeyVaultClient.AuthenticationCallbackの委任エラー

"frameworks": { 
"netcoreapp1.0": { 
    "imports": [ 
    "net451", 
    "dotnet5.6", 
    "portable-net45+win8" 
    ] 
    } 
}, 

「net451」の枠組みをインポートした後、エラーが今なくなっている。したがって、私は、このブロックに示すproject.jsonで「net451」の枠組みをインポートします。今私は、このブロックに示されている新しいKeyVaultClientクラスを開始したい:

public void GetKeyVaultSecret() 
{ 
    var keyVaultClient = new KeyVaultClient(this.GetTokenAsync); 
    // .... 
} 

private async Task<string> GetTokenAsync(string authority, string resource, string scope) 
{ 
    var authenticationContext = new AuthenticationContext(authority); 
    var authenticationResult = 
     await authenticationContext.AcquireTokenAsync(resource, this.clientAssertionCertificate); 
    return authenticationResult.AccessToken; 
} 

問題は、私は、私は運なしで時間のためのソリューションを検索していthis.GetTokenAsyncにこのエラーメッセージが表示されましたです:Argument 1:cannot convert from 'method group' to 'KeyVaultClient.AuthenticationCallback'

Iの場合変更

var keyVaultClient = new KeyVaultClient(this.GetTokenAsync); 

へ:

var keyVaultClient = new KeyVaultClient((authority, resource, scope) => this.GetTokenAsync(authority, resource, string.Empty)); 

私はまだエラーメッセージを受け取りました:Cannot convert lambda expression to type 'KeyVaultClient.AuthenticationCallback' because it is not a delegate type

誰でもこの問題を解決する方法を知っていますか?ありがとう。名前GetTokenAsyncと過負荷または拡張(つまり、複数のメソッド)を持っているので

よろしく、 アルビン

答えて

0

この質問を捨てて、私は@ fernacoloの答えにもう一度気付くことにしました。その時、私はMicrosoft.Azure.KeyVaultパッケージのバージョン1.0.0を使用しました(これは当時の最新バージョンでした、図1参照)。今バージョン2.0.0のパッケージが利用可能で、私が変更履歴を見つけたら、この記事のhttps://docs.microsoft.com/en-us/azure/key-vault/key-vault-dotnet2api-release-notesを見て、 ".NETコアはAzure Key Vault .NET/C#ライブラリの2.0バージョンでサポートされている"と述べました。 Microsoft.Azure.KeyVaultパッケージの

enter image description here 図1.バージョン履歴

エラーが今project.jsonに「net451」の枠組みをインポートする必要がなくなくなっています。

1

エラーcannot convert from 'method group'です。それらの名前を変更しようとすると、うまくいくはずです。

+0

答えをいただきありがとうございます。私はこの問題を数ヶ月間放棄した後に再現しようとしました。しかし、その犯人は "パッケージはまだその時点でコアフレームワークをサポートしていなかった"ようだね?その時、最新のパッケージのバージョンは1.0.0で、今は2.0.0です。そこで、私はchangelogを探してみました。この投稿を見ました。https://docs.microsoft.com/en-us/azure/key-vault/key-vault-dotnet2api-release-notes。ポストは、「.NETコアはAzure Key Vault .NET/C#ライブラリの2.0バージョンでサポートされている」と述べています。これは、 "net451"フレームワークをインポートする必要なしに今の魅力のように動作します。 – samAlvin

関連する問題