54

私は MVC 4 ソリューションに取り組んでおり、それを MVC 5 にアップグレードしようとしています。ここで概説されている手順に従いました。

私はそれに従いましたが、MVC アプリケーションを実行するたびに、次のエラー メッセージが表示されます。

[A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to 
[B]System.Web.WebPages.Razor.Configuration.HostSection. 

Type A originates from 
'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 
'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. 
Type B originates from 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 
'C:\Users\User\AppData\Local\Temp\Temporary ASP.NET 
Files\root\665ac028\de53a189\assembly\dl3\c2c0a4b5\56e8099e_40e0ce01\System.Web.WebPages.Razor.dll'.

これがどのように始まったのか誰か知っていますか?またはどのように解決できますか?今まで見てきた?web.config ファイルを変更しようとしましたが、無駄でした...

4

3 に答える 3

107

Web.config(-s)assemblyBindingには、アセンブリの適切なバージョンと が含まれているSystem.Web.WebPages.Razorことを確認してくださいSystem.Web.Mvc

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

また、かみそりsectionGroupConfigSections最新バージョンも参照していることを確認してください。

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.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>
于 2013-11-13T09:17:08.440 に答える
1

web.config でバージョンを確認します。再度エラーが発生する場合は、ソリューションをクリーンアップして再構築してみてください。また、プロジェクトの Bin フォルダーを確認し、bin フォルダーから古い参照を削除して、プロジェクト ソリューションを再構築します。

于 2015-09-15T04:27:56.217 に答える
0

Razor 2.0 dll への参照がまだあるようです。

プロジェクト参照のプロパティ、特に「特定のバージョンを使用」を確認してください。

于 2013-11-13T09:14:53.197 に答える