我有这个代码工作:
ClusterDetails details
return new HiveConnection(
new Uri(details.ConnectionUrl),
details.HttpUserName,
details.HttpPassword,
details.DefaultStorageAccount.Name,
details.DefaultStorageAccount.Key);
但是当我通过 Nuget 更新 dll 时,我开始收到这个异常:
{“无法加载文件或程序集 'Microsoft.WindowsAzure.Storage, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自异常HRESULT: 0x80131040)":"Microsoft.WindowsAzure.Storage,版本=2.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35"}
这是我的packages.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>
我已经检查并手动检查了 bin 目录中的所有 dll,以确保版本匹配。我还检查以确保它们都与 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,都会发生这种情况。我在此之外安装了 v2.2 的 SDK。我卸载了它,但这并没有帮助。
在这一点上,我没有想法并且因此而落后于最后期限。有没有人遇到过这个?有没有人对如何解决它有任何想法?