アプリケーションの洞察とエンティティフレームワークを使用してwebjobプロジェクトを実行しようとすると、このエラーが発生します。
System.IO.FileLoadException:「ファイルまたはアセンブリをロードできませんでした」System.Runtime.InteropServices.RuntimeInformation、Version = 0.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3aまたはその依存関係の1つ。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040) '
次のNugetパッケージをインストールしました
Microsoft.Azure.WebJobs.Logging.ApplicationInsightsバージョン2.1.0-beta4
Microsoft.Extensions.Loggingバージョン2.0.0
Microsoft.Extensions.Logging.Consoleバージョン2.0.0。
これはすべて、新しいVisual Studio 2017 Webジョブプロジェクトで動作します。このプロジェクトでは、主にこのエラーが発生するエンティティフレームワークを使用して、既存のコードベースをインクルードしようとしています。動作する参照を参照すると、System.Runtime.InteropServices.RuntimeInformationがありませんが、エンティティフレームワークを使用してプロジェクトに追加されています。 .net標準の一部のようですが、新しいコンソールアプリに.net標準が必要ないのはなぜですか。
私が持っているものが4.0.2.0であるため、バージョン0.0.0.0を探している理由がわかりません
これをプロジェクトファイルに追加しようとしましたが、うまくいきませんでした。
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
どんな助けも大歓迎です
どうもありがとう
構成ファイルからロードされたアセンブリが欠落していませんか? web.config内に次のようなものがあることを確認してください。通常、NuGetはこれを行いますが、おそらく何も読み込まれず、何を読み込むべきかを知りません
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
上記のdwillissによるコメントの確認も私にとってはうまくいきました。解決策は以下を取り除くことでした:
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
(私の場合、app.configから、Windowsサービスの場合。)私のプロジェクトは、System.Runtime.InteropServices.RuntimeInformationのみに間接的に依存しています。これは、インポートしたNuGetパッケージの依存関係です。