web-dev-qa-db-ja.com

VS 2015:ファイルまたはアセンブリを読み込めませんでした 'System.Web.WebPages.Razor、Version = 2.0.0.0

さまざまなプロジェクトを含むソリューションを実行しています。ただし、Visual Studio 2015とフレームワーク4.6(Windows 8 OSではIIS Express)を使用してwcfサービスを含むプロジェクト(クラスライブラリ)を実行しようとしています。ただし、このエラーが引き続き表示されます。ブラウザ:

エラー:

enter imag*e description here

Razor2.0の呼び出し元のアセンブリが「System.Web.Mvc」バージョン4.0.0.1であることに気付きました。

アセンブリの呼び出し:System.Web.Mvc、Version = 4.0.0.1、Culture = neutral、PublicKeyToken = 31bf3856ad364e35。

ただし、System.Web.MVC dllはこのプロジェクトでは参照されていません。プロジェクトでの参照は、次の画像にあります。

enter image description here

参照されていませんが、クリアしても常にbinフォルダーに表示されます。そして、それが「System.Web.WebPages.Razor」バージョン2.0を呼び出そうとしている理由かもしれません。

問題の手がかりを明らかにする:

  1. System.web.mvcを呼び出すWeb.Configに関連するアセンブリがありません
<runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
      </dependentAssembly>
     
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  1. パッケージ構成にも含まれていません:
<packages>
  <package id="EntityFramework" version="6.1.3" targetFramework="net46" />
  <package id="Microsoft.AspNet.Providers" version="2.0.0" targetFramework="net451" />
  <package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net451" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
  <package id="PostSharp" version="4.3.5-alpha" targetFramework="net46" />
  <package id="System.Web.Providers" version="1.2" targetFramework="net451" />
</packages>
  1. 参考として含まれていません

私は何が起こっているのか疑問に思っていますか?別のプロジェクトがそれに影響を与える可能性があります!また、ナゲットを使用してパッケージを更新しようとしました(アンインストールおよび再インストール)が、それでも同じ状況です。

問題の考えられる理由:

また、このプロジェクトには、「System.Web.HttpApplicationを実装する "MvcApplication"クラス」を使用する "Gobal.asax"ファイルがあることに気付きました。 「これが問題の正当な理由かもしれません。

どんな助けでも大歓迎です。

8
Hussein Salman

解決策:nugetmanagerを介してバージョン2.0のMicrosoft.AspNet.Webpages最初のリリースをインストールします。

12
Hussein Salman

まず、アセンブリバインディングの失敗を確認します。これにより、どのアセンブリが失敗したバインディングを要求しているかがわかります。

バインディングの失敗を表示するために使用できる便利な小さなツールがあります。これは、それを追跡するのに役立つはずです。

https://msdn.Microsoft.com/en-us/library/e74a18c4(v = vs.71).aspx

幸運を!

1
KnowHoper

私の場合、エラーはデプロイ後のものであり、問​​題はそのサーバーのサブフォルダー内のweb.config内の参照でした。

私はそのマシンにリモートでアクセスし、ローカルでサイトを閲覧することでこれをトラブルシューティングしました(またはweb.configでリモートエラーを有効にすることができます)

<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" />

したがって、必ずすべてのファイルで2.0.0.0またはSystem.Web.WebPages.Razorを検索して、どこかに参照がないことを確認してください。

0
Sonic Soul

このエラーが発生していましたが、エラーがスローされているプロジェクトには、Microsoft.AspNet.Webpagesが正しくインストールされています。次に、別のプロジェクトに保持されているWCFサービスがMVCインストールを失ったことに気付きました。

そのため、他のプロジェクトにMicrosoft.AspNet.Mvcをインストールすると、このエラーが修正されました。

0
Dharmaraj M