web-dev-qa-db-ja.com

ファイルまたはアセンブリ 'System.Runtime.InteropServices.RuntimeInformationを読み込めませんでした

アプリケーションの洞察とエンティティフレームワークを使用して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標準が必要ないのはなぜですか。

enter image description here

私が持っているものが4.0.2.0であるため、バージョン0.0.0.0を探している理由がわかりません

これをプロジェクトファイルに追加しようとしましたが、うまくいきませんでした。

<PropertyGroup>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
   <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

どんな助けも大歓迎です

どうもありがとう

16
Andrew

構成ファイルからロードされたアセンブリが欠落していませんか? 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>
12
Jono_2007

上記の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パッケージの依存関係です。

19
Adam