2016-11-13 13 views
0

Azureにデプロイするサービスを作成しました。 enter image description hereSystem.Runtimeの間違ったバージョンがパッケージ化されています

ビルド手順は、次のとおりです:

  1. は「リリース」構成でccprojを構築し、以下に示すように、これは、「労働者の役割」クラスとDLL、およびAzureのクラウドサービスプロジェクトで構成されています。 .nu​​pkgファイルを取得する
  2. 実行NuGet「スペック」、そして「パック」
  3. 展開.nupkgファイルAzureのクラウドサービスへ

我々がアップグレードされるまで、これは、しばらくの間、正常に動作されています.NET 4.6.2にアップグレードし、System.Runtime(現在v4.3.1)を含むいくつかの他のリファレンスもアップグレードしました。今、私たちがにNuGetリファレンスを追加しているにもかかわらず、ソリューション内のすべてのプロジェクトがSystem.Runtime 4.3.1を指していますが、展開されるSystem.Runtime.dllのバージョンは古いバージョンですその結果、DLL hellがサービス上に残ってしまい、実行に失敗します。正しいバージョンのSystem.Runtime.dllを手作業でコピーすると、すべて正常に動作します。

このバージョンのSystem.Runtimeはどこから届いていますか?問題のソフトウェア/ハードウェアに正しいバージョンを使用するように納得させるにはどうすればよいですか?

更新日:トレイルが暖かくなっています。私の開発マシンでは、EventWorkerプロジェクトのbinフォルダに正しいバージョンのSystem.Runtime.dllが含まれています。しかし... EventProcessor\obj\debug\EventWorkerフォルダには古いバージョンが含まれています! objフォルダを削除してプロジェクトを再コンパイルすると、古いバージョンのDLLが再び表示されます。

どこから来ていますか、どのように修正するのですか?

答えて

0

私はそれを修正しましたが、なぜこれが機能するのか分かりません。 I が削除されました。 NuGetへの参照は、プロジェクトからSystem.Runtimeへの参照です。そして今、EventProcessorRoleは正しいバージョンのDLLを使用しています。

競合メッセージのみ、コンパイル時にはありません

0

あなたは問題のDLLを狩るという点で正しい考えがあります。間違ったバージョンを使用している依存DLLがありますか?また、ローカルで実行すると、エラーウィンドウでdll競合の警告が表示され、どこで識別することができますか?あなたの設定ファイルを見て、あなたがリダイレクトセクションでDLLバージョンへの参照を持っているかどうかを見てください、それを更新するか、新しいバージョンを指すように新しいバージョンを作成してください。

+0

...私はその間に答えとしてこれをマークされますが、誰もが、この動作のための説明を提供することができれば、私はあなたが信用に答えるあげます実行時にAzureにデプロイされます。しかし、今私はいくつかの新しい情報を見つけました。私の質問への更新をご覧ください。 –

+0

後者の場合、ワーカーのapp.configのリダイレクトセクションにそのリファレンスがありますか?それがバージョンを示していれば、あなたが追加するものは問題ではなく、あなたは古いバージョンをローカルに持っているので動くでしょう。なぜクラウドではうまくいかないのでしょうか? –

+0

'app.config'は次のようになります:' ' –

関連する問題