0

このコードが機能していました:

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' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。 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);

このコードは、次の例外で失敗します。

{"値を null にすることはできません。\r\nパラメーター名: プロバイダー"}

これは、使用するように指示した dll のバージョンに関係なく発生します。これ以外にSDKのv2.2をインストールしました。アンインストールしましたが、解決しませんでした。

この時点で、私はアイデアが尽きており、それが原因で締め切りに遅れをとっています。誰もこれに遭遇したことがありますか?誰かがそれを修正する方法について何か考えを持っていますか?

4

1 に答える 1

2

ストレージ ライブラリのバージョン 3.1.0.1 が昨日リリースされました (私は日曜日からこの問題に取り組んでいます)。それに更新すると、問題が修正されました。

于 2014-04-03T15:25:47.530 に答える