У меня работал этот код:
ClusterDetails details
return new HiveConnection(
new Uri(details.ConnectionUrl),
details.HttpUserName,
details.HttpPassword,
details.DefaultStorageAccount.Name,
details.DefaultStorageAccount.Key);
но когда я обновил dll через Nuget, я начал получать это исключение:
{"Не удалось загрузить файл или сборку "Microsoft.WindowsAzure.Storage, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35" или одну из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)":"Microsoft.WindowsAzure.Storage, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35"}
Вот мои пакеты.config:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Data.Edm" version="5.6.1" targetFramework="net45" />
<package id="Microsoft.Data.OData" version="5.6.1" targetFramework="net45" />
<package id="Microsoft.Data.Services.Client" version="5.6.1" targetFramework="net45" />
<package id="Microsoft.Hadoop.Client" version="1.1.0.7" targetFramework="net45" />
<package id="Microsoft.Hadoop.Hive" version="0.12.5126.42915" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.8.0.0" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management.HDInsight" version="1.1.0.7" targetFramework="net45" />
<package id="Newtonsoft.Json" version="5.0.8" targetFramework="net45" />
<package id="System.Spatial" version="5.6.1" targetFramework="net45" />
<package id="WindowsAzure.Storage" version="3.0.3.0" targetFramework="net45" />
</packages>
Я просмотрел и вручную проверил все dll в каталоге bin, чтобы убедиться, что версии совпадают. Я также проверил, чтобы убедиться, что все они соответствуют последним версиям Nuget.
Я пробовал добавлять варианты:
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.Storage" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.3.0" newVersion="3.0.3.0" />
</dependentAssembly>
в app.config, но он просто создает новое исключение в другой части кода.
IHDInsightClient _client;
var details = await _client.CreateClusterAsync(clusterInfo);
Этот код не работает со следующим исключением:
{"Значение не может быть нулевым.\r\nИмя параметра: провайдер"}
Это происходит независимо от того, какую версию dll я говорю использовать. У меня была версия 2.2 SDK, установленная вне этого. Я удалил его, но это не помогло.
На данный момент у меня нет идей, и из-за этого я отстаю от сроков. Кто-нибудь сталкивался с этим раньше? У кого-нибудь есть идеи, как это исправить?