web-dev-qa-db-ja.com

HRESULTからファイルまたはアセンブリ例外をロードできませんでした:0x80131040

最初のMVC 4プロジェクトを作成し、ローカルサーバーで完全に動作します。しかし、ローカルフォルダーに公開し、フォルダーの内容をホスティングサーバーにアップロードするとき。私はそれを実行しようとすると、このエラーが発生します:

ファイルまたはアセンブリ「DotNetOpenAuth.Core、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = 2780ccd10d57b246」またはその依存関係の1つをロードできませんでした。システムは、指定されたファイルを見つけることができません。誰でも私を助けてくれますか?

Web.config:

<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" />
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
  </dependentAssembly>
</assemblyBinding>

P.S Web Formsの同じプロジェクトは、ホスティングサーバーで動作します。

22
levkaster

ついに答えを見つけた!! [参照]に移動->問題の原因となっているdllファイルを右クリック->プロパティを選択->バージョンを確認->プロパティのバージョンをWeb設定に一致

<dependentAssembly>
    <assemblyIdentity name="YourDllFile" publicKeyToken="2780ccd10d57b246"               culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-YourDllFileVersion" newVersion="YourDllFileVersion" />
  </dependentAssembly>
57
levkaster

私のためにすぐに働いたのは:

  • Binフォルダーを見つけました(下の図を参照)。

  • 安全のために他のフォルダにあるすべてのdllを移動しました。

  • その後、プロジェクトを再構築しました。

  • 問題を解決した後、古いdllファイルを削除しました。

Open file location

3
Nick Bullatovci

ソリューションに、相互に対話し、両方が同じ参照を使用する2つのプロジェクトが含まれている場合、およびそれぞれの参照のバージョンが両方のプロジェクトで異なる場合。その後、そのようなエラーも発生しました。すべての参照を最新のものに更新してください。

2
Priyanka Mane

次のdllファイルをbinフォルダーに追加します。

DotNetOpenAuth.AspNet.dll
DotNetOpenAuth.Core.dll
DotNetOpenAuth.OAuth.Consumer.dll
DotNetOpenAuth.OAuth.dll
DotNetOpenAuth.OpenId.dll
DotNetOpenAuth.OpenId.RelyingParty.dll

不要な場合は、「DotNetOpenAuth.Core」などの名前の設定からdependentAssembliesを削除してください。

0
Jeyhun Rahimov

これを試して:

  • PublishProfilesフォルダーの* .pubxmlファイルを編集します
  • deleteExistingFiles trueを設定します
  • すべてのナゲットパッケージの更新、再構築、再公開、出来上がり、問題の解決!

...同じ問題が発生したときに私のために働いた。

プロジェクトでHRESULT:0x80131040エラーが使用されているか、プロジェクトで参照されているかどうかを確認します。 「はい」の場合、これらのプロジェクトに類似した.dllが参照されており、バージョンが同じであるかどうかを確認してください。それらが同じバージョン番号ではない場合、それは前述のエラーを引き起こしています。

0
john carlo