Azureにデプロイするサービスを作成しました。 System.Runtimeの間違ったバージョンがパッケージ化されています
ビルド手順は、次のとおりです:
- は「リリース」構成でccprojを構築し、以下に示すように、これは、「労働者の役割」クラスとDLL、およびAzureのクラウドサービスプロジェクトで構成されています。 .nupkgファイルを取得する
- 実行NuGet「スペック」、そして「パック」
- 展開.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が再び表示されます。
どこから来ていますか、どのように修正するのですか?
...私はその間に答えとしてこれをマークされますが、誰もが、この動作のための説明を提供することができれば、私はあなたが信用に答えるあげます実行時にAzureにデプロイされます。しかし、今私はいくつかの新しい情報を見つけました。私の質問への更新をご覧ください。 –
後者の場合、ワーカーのapp.configのリダイレクトセクションにそのリファレンスがありますか?それがバージョンを示していれば、あなたが追加するものは問題ではなく、あなたは古いバージョンをローカルに持っているので動くでしょう。なぜクラウドではうまくいかないのでしょうか? –
'app.config'は次のようになります:' ' –