MVC 3プロジェクト(ASP.net 4)でパッケージをアップグレードしたところ、そのプロジェクトのページにアクセスすると次のエラーメッセージが表示されます。
「/ MyApplication」アプリケーションのサーバーエラー。
ファイルまたはアセンブリ「System.Web.WebPages.Razor、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35」またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細とコードのどこで発生したかについては、スタックトレースを確認してください。
例外の詳細:System.IO.FileLoadException:ファイルまたはアセンブリ 'System.Web.WebPages.Razor、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)
ソースエラー:
現在のWeb要求の実行中に、未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタックトレースを使用して特定できます。
アセンブリロードトレース:次の情報は、アセンブリ 'System.Web.WebPages.Razor、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'をロードできなかった理由を判断するのに役立ちます。
===事前バインド状態情報===ログ:ユーザー= IIS APPPOOL\ASP.NET v4.0ログ:DisplayName = System.Web.WebPages.Razor、Version = 2.0.0.0、Culture =ニュートラル、PublicKeyToken = 31bf3856ad364e35(完全指定)LOG:Appbase = file:/// C:/.../ LOG:Initial PrivatePath = C:...\bin Calling Assembly:Microsoft.Web.Helpers、Version = 2.0 .0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35。 === LOG:このバインドはデフォルトのロードコンテキストで開始します。ログ:アプリケーション構成ファイルの使用:C:...\web.configログ:ホスト構成ファイルの使用:C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.configログ:Cのマシン構成ファイルの使用\ Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.configログ:事後ポリシー参照:System.Web.WebPages.Razor、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35ログ:新しいURL file:/// C:/Windows/Microsoft.NET/Framework64のダウンロードを試行しています/v4.0.30319/Temporary ASP.NET Files /.../ cb62a7b2/327a0353/System.Web.WebPages.Razor.DLLログ:新しいURL file:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files /.../ cb62a7b2/327a0353/System.Web.WebPages.Razor/Systemのダウンロードを試行しています.Web.WebPages.Razor.DLL。ログ:新しいURLファイルのダウンロードを試みています:/// C:/LeGroupeHtmSVN/.../UpDir.Web/bin/System.Web.WebPages.Razor.DLL。 WRN:アセンブリ名を比較すると、不一致が発生しました:メジャーバージョンERR:アセンブリのセットアップの完了に失敗しました(hr = 0x80131040)。プローブが終了しました。
スタックトレース:
[FileLoadException:ファイルまたはアセンブリ 'System.Web.WebPages.Razor、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)]
Microsoft.Web.Helpers.PreApplicationStartCode.Start()+0[InvalidOperationException:タイプMicrosoft.Web.Helpers.PreApplicationStartCodeのアプリケーション前開始初期化メソッドStartは、次のエラーメッセージで例外をスローしました:ファイルまたはアセンブリ 'System.Web.WebPages.Razor、Version = 2.0.0.0をロードできませんでした、 Culture = neutral、PublicKeyToken = 31bf3856ad364e35 'またはその依存関係の1つ。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)。]
System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1メソッド)+11711966
System.Web.Compilation.BuildManager.CallPreStartInitMethods()+465
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager、IApplicationHost appHost、IConfigMapPathFactory configMapPathFactory、HostingEnvironmentParameters hostingParameters、PolicyLevel policyLevel、Exception appDomainCreationException)+1167[HttpException(0x80004005):タイプMicrosoft.Web.Helpers.PreApplicationStartCodeのアプリケーション前開始初期化メソッドStartは、次のエラーメッセージで例外をスローしました:ファイルまたはアセンブリ 'System.Web.WebPages.Razor、Version = 2.0をロードできませんでした.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35 'またはその依存関係の1つ。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)。]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+11700896 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr、HttpContext context)+4869125-------------------------------------------------- ------------------------------バージョン情報:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.0.30319.272
Web.configファイルとアプリケーションで、System.Web.WebPages.Razor v1.0.0.0を参照しています。
<dependentAssembly> <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" /> </dependentAssembly>
.Net 4でSystem.Web.WebPages.Razor v2.0.0.0を使用できるかどうかさえわかりません。
さて、System.Web.WebPages.Razor v2.0.0.0を参照しているものを見つけるにはどうすればよいですか?
system.Web.WebPages.Razor v2.0.0.0を参照しているものを調べるにはどうすればよいですか?
例外スタックトレースを読むだけです:
Calling Assembly : Microsoft.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
したがって、Microsoft.Web.Helpers
を使用しているようですが、これはSystem.Web.WebPages.Razor, Version=2.0.0.0
に依存しています。
とても簡単。 Nuget Package Managerコンソールで:
更新パッケージMicrosoft.AspNet.Mvc-再インストール
この問題は、「未使用の参照を削除」を行ったときに始まりました。 Webサイトはローカルマシンで動作しましたが、公開後にサーバーで動作しませんでした。
次のことを行ってこの問題を修正しました。
多くの痛み、グーグル、髪の毛を引っ張った後、nugetを使用してMVC 4をアンインストールし、Web構成からMVC、カミソリ、インフラストラクチャへのすべての参照を削除し、binフォルダーからdllを削除してから、nugetを使用してすべてを再インストールしました。 dllが一致しなかった理由を理解しようとすると、時間がかかりませんでした。
ASP.NET MVC 4では、名前空間はSystem.Web.WebPages.Razorではなく、System.Web.Razorです。
それは私のために働いた、web.configを変更します。
System.Web.Mvc
への不要な参照を追加した後、同じエラーが発生していました。見つけたすべての参照を削除しましたが、何も機能していないようです。最終的にプロジェクトのbin
フォルダーを削除し、再構築後にエラーがなくなりました。
Windowsコントロールパネルを使用してASP.NET MVC 4をアンインストールし、AspNetMVC4Setup.exe
( https://www.Microsoft.com/en-us/download/details。 aspx?id = 3068 )、そしてそれは私のために問題を修正しました。
つまり、NugetやVisual Studioを使用する必要はありませんでした。
また、このエラーを受け取り、オンラインで見つけられるすべてのものを試しましたが、消えることはありませんでした。最後に、MVCを5.2.3から4.0.40804にダウングレードしました。最終的にはMVC 5を使用する必要があるため、このソリューションは好きではありませんが、現時点では機能します。これが他の人に役立つことを願っています。
ショート:
純粋なWeb APIプロジェクトでこの問題が発生している(したがって、かみそりを必要としない)場合は、とにかく追加し、再構築してから削除してみてください。
長い話:
スタックトレースが呼び出しアセンブリとして「System.Web.Mvc」を指していることを除いて、真新しい純粋なWeb APIプロジェクトでこの問題が発生しました(Darinの回答を参照)。私のプロジェクトではMVC、Razor、またはそのようなものへの言及はありません...
MVCパッケージ(AspNet.Mvc、AspNet.WebPages、およびAspNet.Razor)を追加して、後続の問題がないかどうかを確認することにしました。
その後、WebApiアプリは完全に正常に起動しました。その後、まったく同じパッケージを削除しましたが、すべてが正常でした。
誰かを助けることを願っています。
前述のエラーで以前の作業プロジェクトが突然クラッシュした場合、次の解決策を試すことができます。
これは私のために働いた。
同様のアセンブリバインディングエラーの場合、次の手順が役立つ場合があります。
私は最初に試しました Mohammed Emadの答え -喜びはありません。それから私は試した
git clean -x -d -f
。csprojを手動で編集 で修正できる新しい「Roslyn」エラーが発生しました。
興味深いことに、Roslynの質問のページを少し下に読んだ後、さらに多くの票(Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
)で 別の提案 を見つけました。 .csprojを手動で編集するよりも、それを実装したいと考えて、.csprojの変更をバックアウトしました。ソリューションがまだ機能していることを確認するためだけです。
だから、結局のところ、(このページの)Mohammedの答えは、最初にgit cleanを実行しただけでうまくいくのだろうかと思っています。
場合によっては、これを解決するためにWebページ2をインストールするだけです(私の場合は解決しました-Web APIを使用してローカルWebページにデプロイします)
https://www.Microsoft.com/en-us/download/details.aspx?id=346
MVC4をMVC5バージョンにアップグレードすると、同じエラーが表示されました。まず、依存する呼び出しアセンブリをアップグレードしました。
> System.Web.WebPages.Razor, Version=2.0.0.0
その後、Viewsフォルダーの下のweb.configファイルを更新し、次のパッケージを更新しました
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
に
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
また、更新
<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
に
<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
これらの手順は私のために働く