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からすべての参照を既に削除しました。また、自分のプロジェクトで持っていたすべての認証アセンブリの自己参照で確認しましたが、何もありません。
これは私の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>
ありがとう
OAuthを使用したくない場合は、参照を削除します。WebPagesOAuth DLL(両方ともMicrosoft.Web.WebPages.OAuth.dll 1)およびDotNetOpenAuth DLL。
1:ファイル名はCalling Assembly
にあります。したがって、すべてのcalling Assembly
のうちDotNetOpenAuth.Core
を削除するとうまくいくはずです。このアプローチは、他の未使用の欠落参照に対して機能するはずです。
同様の問題がありました。 1日前にプロジェクトが正常に実行されていたので、本当に奇妙でした。
プロジェクトフォルダーからobjフォルダーとbinフォルダーを削除し、ソリューションをクリーンアップして再構築しました。
お役に立てば幸いです。
これは、MVCアプリケーションをbin deploy
としてデプロイするときに発生します。プロジェクトを右クリックして[Add deployable dependencies
]を選択すると、ASP .NET Webpages with Razor syntax
の隣のボックスをオンにすると、VSはOauthへの参照を追加します。
これを修正するには、_bin_deployableAssemblies
フォルダーとアプリケーションのbin
フォルダーを削除してから、アプリケーションをクリーンアップして再構築すると、再び動作します。
私の場合、MVC4アプリケーションはVS2012デバッガーで正常に実行されていましたが、サーバー上でアプリケーションを公開すると、「ファイルまたはアセンブリ 'DotNetOpenAuth.Core'をロードできませんでした」というエラーが表示されました。
[Webの公開]ウィンドウの[設定]タブの[公開前に既存のファイルをすべて削除する]チェックボックスをオンにすると、問題が解決しました。
Nugetを使用してパッケージをインストールすることで問題を解決しました
Install-Package Microsoft.AspNet.WebPages.OAuth
公開設定で[宛先の追加ファイルを削除]を選択するだけです。これは私のために働く
次の2つのパッケージをインストールすることで、VS2012 Professional Update 4 RCでこの問題を解決しました。
メニューからパッケージマネージャーコンソールを開きます。
ツール|ライブラリパッケージの管理|パッケージマネージャーコンソール
インストールパッケージDotNetOpenAuth.AspNet
これがあなたに役立つことを願っています!!!
値 '2780ccd10d57b246'に対してグローバルソリューション検索(変更していない場合はCtrl + Shift + F)を実行してみてください。 web.configで見つかると思います。
もう1つのソリューションオプションは、次のようにAssembly依存関係を持つことです。
<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>
私はコメントする評判がありませんが、この正確な問題があったことを確認することができ、ジャックは私に正しい解決策を与えました。最近、[サービス参照の追加]を押したところ、上記のエラーメッセージでプログラムが破損しました。
_bin_deployableAssembliesフォルダーとアプリケーションのbinフォルダーを削除してから、アプリケーションをクリーンアップして再構築すると、再び機能するようになりました。
私にとっては、パッケージャーマネージャーコンソールを使用して次のように機能し、次の順序でパッケージをアンインストールし、再インストールして問題を解決しました。
アンインストール
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
推奨:
ここでも同じ問題がありました。私が公開した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>
追加しただけで機能しました。
WwwrootからBINフォルダーを削除して、再度公開するだけです。
Microsoft.AspNet.Membership.OpenAuthを削除することで、最終的に解決できました
私たちのすべてのライブラリの更新に取り組んでいるときに、この問題に遭遇します。このリンクはこの問題を解決するのに役立ちました。 https://www.devexpress.com/Support/Center/Question/Details/Q554890/the-could-not-load-file-or-Assembly-dotnetopenauth-core-version-4-0-0- 0-error-message-is 。
特に、これらのバインディングリダイレクトを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>
私にとっては、csprojファイルに次のセクションを追加するのに役立ちました:
<PropertyGroup>
<PostSharpHostConfigurationFile>web.config</PostSharpHostConfigurationFile>
</PropertyGroup>
このエラーも発生していましたが、ASP.NET MVC 5プロジェクトを使用していました。パッケージDotNetOpenAuth.Mvc5をインストールし、AsActionResult()の代わりにAsActionResultMvc5()を呼び出して解決しました
これが誰にも役立つ場合-Nugetを介してDotNetOpenAuthコンポーネントをアンインストールできなかったため、参照リストから直接それらを削除し、nugetを介してdotnetopenauthを再インストールすることでこのエラーを解決しました。