嘗試創建KeyVaultClient時遇到問題。我使用示例代碼Azure KeyVaultClient Hyak.Common異常試圖獲取訪問令牌
async Task<string> GetAccessToken(string authority, string resource, string scope)
{
var clientId = "ID";
var clientSecret = "SECRET";
ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);
var context = new AuthenticationContext(authority, TokenCache.DefaultShared);
var result = await context.AcquireTokenAsync(resource, clientCredential);
return result.AccessToken;
}
public async void Test()
{
var vaultAddress = "url";
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetAccessToken));
}
,當我嘗試創建我收到一個異常
型「System.TypeInitializationException」的異常出現在 Hyak.Common.dll但未處理的keyVaultClient用戶代碼
附加信息: 'Hyak.Common.ServiceClient`1的類型初始值設定項引發異常。
當我去異常細節,我可以看到
{「無法加載文件或程序集Microsoft.Threading.Tasks, 版本= 1.0.12.0,文化=中立,公鑰= b03f5f7f11d50a3a 。'或 它的一個依賴系統找不到指定的文件 「:」 Microsoft.Threading.Tasks,版本= 1.0.12.0, 文化=中性公鑰= b03f5f7f11d50a3a「}
我packages.config :
<package id="Hyak.Common" version="1.1.0" targetFramework="net46" />
<package id="Microsoft.Azure.Common" version="2.0.4" targetFramework="net46" />
<package id="Microsoft.Azure.Common.Dependencies" version="1.0.0" targetFramework="net46" />
<package id="Microsoft.Azure.KeyVault" version="1.0.0" targetFramework="net46" />
<package id="Microsoft.Azure.SqlDatabase.ElasticScale.Client" version="1.3.2" targetFramework="net46" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net46" />
<package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net46" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net46" />
<package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="3.13.7" targetFramework="net46" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net46" userInstalled="true" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net46"/>
不幸的是,事實並非如此。我有Microsoft.Bcl.Async。 – t111
請確保您是否可以在解決方案資源管理器的「參考」節點下看到對Microsoft.Threading.Tasks.dll的引用。請檢查Microsoft.Threading.Tasks.dll文件是否存在於項目包中的Microsoft.Bcl.Async.1.0.168 \ lib文件夾中。此外,請嘗試從您的項目中卸載軟件包,然後重新安裝Microsoft.Azure.KeyVault和Microsoft.IdentityModel.Clients.ActiveDirectory軟件包。 –