ファイルまたはアセンブリを読み込めませんでした 'DotNetOpenAuth.Core


83

asp net mvc 4アプリケーションを起動すると、次のエラーが発生します。

Could not load file or assembly 'DotNetOpenAuth.Core, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=2780ccd10d57b246' or one of its dependencies. 
The system cannot find the file specified

これはエラーログです

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Windows\SysWOW64\inetsrv\w3wp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = notebook\Guilherme
LOG: DisplayName = DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246
 (Fully-specified)
LOG: Appbase = file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/
LOG: Initial PrivatePath = C:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Gedi\Gedi\bin
Calling assembly : Microsoft.Web.WebPages.OAuth, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Gedi\Gedi\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core/DotNetOpenAuth.Core.EXE.

パッケージマネージャーを使用して、DotNetOpenAuthからすべての参照を既に削除しました。また、プロジェクトにあるすべてのAuthアセンブリの自己参照を確認しましたが、何もありません。

これは私のpackages.configです

<packages>
  <package id="AutoMapper" version="2.2.0" targetFramework="net45" />
  <package id="EntityFramework" version="5.0.0" targetFramework="net45" />
  <package id="jQuery" version="1.7.1.1" targetFramework="net45" />
  <package id="jQuery.UI.Combined" version="1.8.20.1" targetFramework="net45" />
  <package id="jQuery.Validation" version="1.9.0.1" targetFramework="net45" />
  <package id="knockoutjs" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Client" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Core" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages.Data" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages.WebData" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.jQuery.Unobtrusive.Ajax" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Modernizr" version="2.5.3" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net45" />
  <package id="Repository" version="1.0.2.12" targetFramework="net45" />
  <package id="RestSharp" version="103.4" targetFramework="net45" />
  <package id="WebGrease" version="1.1.0" targetFramework="net45" />
</packages>

ありがとう

回答:


82

OAuthを使用したくない場合は、参照を削除します。WebPagesOAuthDLL(Microsoft.Web.WebPages.OAuth.dll 1だと思います)とDotNetOpenAuthDLLの両方です。


1:ファイル名はCalling assembly。にあります。したがって、すべてcalling assemblyを削除するとDotNetOpenAuth.Coreうまくいくはずです。このアプローチは、他の未使用の欠落している参照に対して機能するはずです。


1
ほとんどの参照はDotNetOpenAuthで始まっているため、参照名Microsoft.Web.WebPages.OAuth.dllを確認すると便利でした。それは私にとって問題を解決するのに役立ちました。ありがとう
IanLi

77

私も同様の問題を抱えていました。プロジェクトは前日に正常に実行されていたので、それは本当に奇妙でした。

プロジェクトフォルダーからobjフォルダーとbinフォルダーを削除し、ソリューションをクリーンアップして再構築しました。

お役に立てば幸いです。


2
これはおそらく、bin / objフォルダーに既に存在するoauth関連のDLLを削除することで機能しました。参照を削除して再構築しても問題のあるファイルは削除されませんが、ディレクトリが削除されます。
Michael Haren 2013年

5
同じ問題があり、oauth dllが追加されましたが、DotNetOauthdllは追加されませんでした。クリーニングは機能しませんでした。bindフォルダーとobjフォルダーを手動で削除すると機能します。Visual Studioでのこれらの小さな、しかしアプリケーションを壊す問題は、私の神経質になり始めています。
モルデ2013年

2
私は同じ問題を抱えており、それらのフォルダを削除しても機能しません。私はそれらを削除し、ソリューションをクリーンアップして再構築しますが、問題は残ります
チアパス2014

このoauthライブラリはwebactivatorを使用して初期化するため、参照を削除するだけでは不十分です。ライブラリをbinフォルダーから削除する必要があります(webactivatorはロードされたフォルダー内のdllファイルを列挙します)
Mel

チアパスと同じように、私も同じ問題を抱えていました。binとobjを削除し、クリーンアップして再構築しましたが、問題は残りました。しかし、その後、Visual Studio再起動すると、機能しました
wha7ever 2017年

22

これは、MVCアプリケーションをとしてデプロイするときに発生することを確認しましたbin deploy。プロジェクトを右クリックして[ Add deployable dependenciesVS ]を選択すると、の横にあるチェックボックスをオンにすると、Oauthへの参照が追加されASP .NET Webpages with Razor syntaxます。

これを修正するには、_bin_deployableAssembliesフォルダーとアプリケーションのbinフォルダーを削除してから、アプリケーションをクリーンアップして再構築すると、再び機能します。


1
私はMSDNを実行しようとしていました-ProjectSilk。上記の手順は、問題の解決に役立ちました
dekdev 2013年

1
_bin_deployableAssembliesフォルダー全体を削除する代わりに、そこからMicrosoft.Web.WebPages.OAuthファイルを削除するだけで十分でした。(もちろん、ターゲットの公開フォルダーのクリーニングだけでなく、クリーンアップと再構築も必要でした)
Jerther 2014年

16

私の場合、MVC4アプリケーションはVS2012デバッガーで正常に実行されていましたが、サーバーにアプリケーションを公開すると、「ファイルまたはアセンブリ 'DotNetOpenAuth.Core'を読み込めませんでした」というエラーが発生していました。

[Webの公開]ウィンドウの[設定]タブで[公開する前に既存のファイルをすべて削除する]チェックボックスをオンにすると、問題が解決しました。

ファイルシステムの公開設定


3
Azureにアップロードしていて、チェックボックスのラベルが「宛先で追加のファイルを削除する」であったにもかかわらず、これで問題が解決しました。
エイドリアンスミス

公開する前に既存のファイルをすべて削除してください。ありがとう!
Andrzej Gis 2013年

12

Nugetを使用してパッケージをインストールすることで問題を解決しました

Install-Package Microsoft.AspNet.WebPages.OAuth

4

公開設定で「宛先で追加ファイルを削除する」を選択するだけです。これは私のために働きます


1
このような簡単な解決策には、1,000の賛成票が必要です。私はこれに3日間苦労し、Azureに公開しようとしています。
saiyancoder 2014年

3

次の2つのパッケージをインストールすることで、VS2012 Professional Update 4RCでこの問題を解決しました。

  1. メニューからパッケージマネージャーコンソールを開きます。

    ツール| ライブラリパッケージ管理| パッケージマネージャーコンソール

  2. インストールパッケージDotNetOpenAuth.AspNet

  3. インストールパッケージMicrosoft.AspNet.WebHelpers

これがお役に立てば幸いです!!!


2

値「2780ccd10d57b246」のグローバルソリューション検索(変更していない場合はctrl + shift + f)を実行してみてください。私はあなたがあなたのweb.configでそれを見つけると思います。


これが問題です...参照がありません。すべての「2780ccd10d57b246」を検索、サブフォルダー、結果1を検索、ソリューション全体、「」一致する行:0一致するファイル:0検索されたファイルの総数:182
Dimas Longo 2012

6
プロジェクトからDotNetOpenAuth *を完全に削除するための最良の方法は何ですか?temp dirを削除し、binフォルダーとobjフォルダーを除外し、ソリューションを再構築し、パッケージマネージャーコンソールを使用してすべてのOpenAuthパッケージとOpenIDパッケージを削除しました...今何をすべきかわかりません。また、DotNetOpenAuthを完全に削除してグーグルする有益な結果はありません。
Dimas Longo 2012

2

私にとっては、次のように機能し、パッケージマネージャーコンソールを使用して、次の順序でパッケージをアンインストールし、再インストールすると、問題が解決しました。

アンインストール

Uninstall-Package Microsoft.AspNet.WebPages.OAuth
Uninstall-Package DotNetOpenAuth.AspNet 
Uninstall-Package DotNetOpenAuth.OpenId.RelyingParty
Uninstall-Package DotNetOpenAuth.OpenId.Core 
Uninstall-Package DotNetOpenAuth.OAuth.Consumer
Uninstall-Package DotNetOpenAuth.OAuth.Core
Uninstall-Package DotNetOpenAuth.core

ビルド、上記のパッケージを使用していない場合は、これで問題が解決するはずです。必要な場合に上記を再度インストールするには、次の手順を実行します。

再インストール

install-Package DotNetOpenAuth.AspNet 
install-Package Microsoft.AspNet.WebPages.OAuth
install-Package DotNetOpenAuth.OpenId.RelyingParty
install-Package DotNetOpenAuth.OpenId.Core 
install-Package DotNetOpenAuth.OAuth.Consumer
install-Package DotNetOpenAuth.OAuth.Core
install-Package DotNetOpenAuth.core

推奨:

  • プロジェクトのbinフォルダーに移動し、クリアします
  • IISに公開するときは、仮想ディレクトリを削除し、WebサイトをIISに再度割り当てます。これは、問題を引き起こしているサーバーに現金があるという問題に直面したためです...

1

もう1つのソリューションオプションは、次のようにアセンブリの依存関係を設定することです。

<dependentAssembly>
  <assemblyIdentity name="DotNetOpenAuth.AspNet"
                    publicKeyToken="2780ccd10d57b246"
                    culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="DotNetOpenAuth.Core"
                    publicKeyToken="2780ccd10d57b246"
                    culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>

ここにコンテンツを追加してください
SSP

リンクのみの回答は投稿しないでください。あなたの答えのリンクから関連情報を書き留めてください。
sumurai8 2013年

このリンクは質問に答えることができますが、ここに答えの本質的な部分を含めて、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。
Kamil Budziewski 2013年

1

コメントする評判はありませんが、この正確な問題があり、ジャックが正しい解決策を教えてくれたことを確認できます。最近[サービス参照の追加]を押したところ、上記のエラーメッセージが表示されてプログラムが壊れました。

_bin_deployableAssembliesフォルダーとアプリケーションのbinフォルダーを削除してから、アプリケーションをクリーンアップして再構築すると、アプリケーションが再び機能するようになりました。


0

これが誰かに役立つ場合-Nugetを介してDotNetOpenAuthコンポーネントをアンインストールできなかったため、参照リストから直接削除してから、nugetを介してdotnetopenauthを再インストールすることでこのエラーを解決しました。


0

このエラーも発生していましたが、ASP.NET MVC5プロジェクトで発生しました。パッケージDotNetOpenAuth.Mvc5をインストールし、AsActionResult()の代わりにAsActionResultMvc5()を呼び出すことで解決しました。


0

私にとって、csprojファイルに次のセクションを追加するのを手伝いました:

<PropertyGroup>
   <PostSharpHostConfigurationFile>web.config</PostSharpHostConfigurationFile>            
</PropertyGroup>

0

私はここでも同じ問題を抱えていました。私の公開したweb.configには次の行がありませんでした:

  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
    <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
  </dependentAssembly>

追加しただけで動作しました。




0

すべてのライブラリの更新に取り組んでいるときに、この問題が発生します。このリンクは、この問題の修正に役立ちました。https://www.devexpress.com/Support/Center/Question/Details/Q554890/the-could-not-load-file-or-assembly-dotnetopenauth-core-version-4-0-0-0-error-メッセージ-です

特に、これらのバインディングリダイレクトをweb.configファイルに追加しました。

      <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780CCD10D57B246" culture="neutral" />
    <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.3.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780CCD10D57B246" culture="neutral" />
    <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.3.0.0" />
  </dependentAssembly>

-2

プロジェクト内のすべてのMicrosoft.Web.WebPages.OAuth依存関係を削除します。


そしてMicrosoft.Web.WebPages.OAuth.dll上記トップ応答から
felickz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.