web-dev-qa-db-ja.com

ファイルまたはアセンブリ「WebGrease、バージョン= 1.5.1.25624、Culture = neutral、PublicKeyToken = 31bf3856ad364e35」またはその依存関係の1つをロードできませんでした

MVC4 Web APIプロジェクトがあります。サービスプロジェクトの実行中にエラーが発生します

ファイルまたはアセンブリ「WebGrease、バージョン= 1.5.1.25624、Culture = neutral、PublicKeyToken = 31bf3856ad364e35」またはその依存関係の1つをロードできませんでした。システムは、指定されたファイルを見つけることができません。

webGrease.dllファイルを追加しましたが、まだそのエラーが発生します

そして、web.configを変更してみました

<bindingRedirect oldVersion="0.0.0.0-1.3.0.0"/>"

そして

<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />

何が欠けているのかアドバイスしてください。

69
Jidheesh Rajan

NuGetを試してみましたか?

Install-Package WebGrease -Version 1.5.1

または

Install-Package WebGrease -Version 1.5.2
47

私はOPでは少し遅れていることを知っていますが、MVC 4のBootstrap NuGetパッケージを試しているときに同じ問題に遭遇しました、私の場合はMicrosoft .AspNet.Web.Optimizationパッケージ、および簡単なソリューションを見つけることができました。

パッケージマネージャーコンソールで次のコマンドを実行してみてください。

Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease
Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease

最初の2行はBootstrap 3 for MVC 4パッケージによって既にインストールおよび更新されているため、私にとっては何の効果もありませんでしたが、とにかくそれらを実行した後、すべてがコンパイルされて正常に実行されました。

82
c0y0teX

このエラーは、Nugetパッケージ自体がMicrosoft.AspNet.Web.Optimization 1.1.3に依存しているにもかかわらず、WebGrease 1.5.1.25624が内部的にWebGrease 1.5.2.14234を参照するためです。 Nugetパッケージの作成中に誰かが明らかに混乱しました。

これを解決するには、Web.Configにこのアセンブリバインディングを追加します。

  <dependentAssembly>
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-1.5.1.25624" newVersion="1.5.2.14234" />
  </dependentAssembly>
58
André Pena

私にとって、上記のシナリオはどれもうまくいきませんでした。

2日間試した後、最終的に解決策を見つけました。

私がやったのは、アンインストールMicrosoft.AspNet.Web.OptimizationおよびWebGrease両方。

この最適化アセンブリが内部的にWebGrease 1.5.1を指すことは知っていました。そこで、WebGrease 1.5.1を参照しない最適化のバージョンを選択しました。

すべてを機能させるために、次のコマンドを実行しました。

Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization -Version 1.1.0

上記の解決策がうまくいかない人のために私が良い助けになることを願っています。

乾杯!

14
Parth Jani

私が観察した問題は、Jidheesh Rajanが述べたものと密接に一致しました。ただし、(バージョンを指定せずに)Nugetパッケージマネージャーからパッケージを更新しても問題は修正されませんでした。この問題を解決するために私がしなければならなかったことを以下に示します。 (本質的に、WebGreaseをバージョン1.6に明示的に更新しました)

Visual Studioのパッケージマネージャーコンソール内から、WebGreaseを明示的にバージョン1.6に更新します。これがコマンドです。

Install-Package WebGrease -Version 1.6

出力は

Removing 'WebGrease 1.5.2' from {project name}

「WebGrease 1.6.0」を{プロジェクト名}に追加「WebGrease 1.6.0」を{プロジェクト名}に正常に追加しました「WebGrease 1.5.2」をアンインストールします。 「WebGrease 1.5.2」のアンインストールに成功しました。

これにより、web.configが

    assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /
    bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" 

これにより、csprojファイルから行が削除されました。

<WebGreaseLibPath>..\packages\WebGrease.1.5.2\lib</WebGreaseLibPath>

csprojファイル内のこのノードの更新

<Reference Include="WebGrease, Version=1.5.2.14234, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>

これに

<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>

ローカルマシンではなく、ステージWebサーバーで問題が発生しなかったことに留意してください。パッケージを更新せずに問題を解決するために最善を尽くしたかったのですが、これが唯一の修正でした。

7
joey

多くのことを試してみましたが、これは私にとってはうまくいきました。時にはWebgrease Assemblyの問題、時にはWeb.Optimization Assemblyの問題がありました。これはMicrosoft.AspNet.Web.Optimization 1.1.3で私のために働いた

Update-Package WebGrease -Version 1.6
5
Ali Umair

Webgreaseをリダイレクトするときは、assemblyBinding要素にappliesTo属性がないことを確認してください。私にとっては完全に削除しました。

enter image description here

4
kenjamin

昔ながらのゴールディ...

私はVisual Studio 2013でMVC 5プロジェクトに取り組んでいましたが、同じ問題がありました。バージョン管理にVisual SVNを使用していましたが、この問題が発生したのはチーム内で1人だけでした。

私のために働いた唯一のものはこれでした:

  1. Microsoft.AspNet.Web.Optimizationをアンインストールします
  2. Nugetコマンドプロンプトの実行:install-package Microsoft.AspNet.Web.Optimization -Version 1.0.0

これにより、古いバージョンのWeb.Optimizationがインストールされます。このプロジェクトは、最初はバージョン1.1.0を参照していました。問題はWebGreaseではなく、WebGreaseの既存の古いバージョンを参照しているSystem.Web.Optimization.dllにあります。

プロジェクトを実行したときは機能しましたが、他のチームと同じパッケージバージョンを使用したかったのです。だから、更新しようとしましたが...エラーが返されました...

この後、プロジェクトを(再び)削除し、SVNから取り戻しました。驚いたことに、それは機能し始めました...問題は、プロジェクトを完全に削除し、これまでに数回SVNからそれを取得したことです。同僚からdllを取得したこともあります。NuGetから破損したファイルを取得しているのではないかと思ったからです。

これがいつか誰かに役立つことを願っています。VisualStudio 2016とMVC 8で:)

4
Alex Albu

Starup web-project"Install-Package Microsoft.AspNet.Web.Optimization"(現在のバージョンは1.1.3)を使用しました。これはデフォルトでNuGetコンソールで選択されていません。

しかし、NuGetには新しいapp.configの作成ファイルがありますが、web.configは更新される予定です。

私にとってはWebGrease dependentAssemblyの移動要素をapp.configからweb.config<runtime><assemblyBinding>...</assemblyBinding></runtime>に移動しました。

2
Anton Lyhin

パッケージマネージャーコンソールを使用してアンインストールできなかったため、手動でpackages.configに移動し、古いバージョンをコメントアウトしました。

2
user3557878

展開中にこの問題が発生しました。

WebGrease.dllを運用環境にコピーしましたが、Web.Configファイルも更新するのを忘れていました。

<configuration>
    <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>
        </assemblyBinding>
    </runtime>
</configuration>
1
tno2007

Alreasyはこのエラーを解決しました。状況は思ったより簡単でした。 nugetのSystem.Web.Optimizationの新しいバージョンからインストールすると、

//参照:WebGrease、バージョン= 1.5.1.25624、Culture = neutral、PublicKeyToken = 31bf3856ad364e35

同時にWebGreaseバージョン1.5.2.14234があります。プロジェクトを実行中、このエラーが発生しました:ファイルまたはアセンブリをロードできませんでした 'WebGrease、バージョン= 1.5.1.25624

スー、私はnugetでこのバージョンをチェックしようとしましたが、それはそうではなかったことに驚きました...しかし、VSで新しいプロジェクトを作成するとき-私はそれを得ました。このエラーをハックするには、GACにインストールしようとします。しかし、gacは、このlibがサブスクライブされていないと言います。 System.Web.Optimization Version = 1.1.0.0へのダウングレード。参照は次のとおりです。

//参照:WebGrease、Version = 1.3.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35

1.3.0.0は強くサブスクライブされています-助けてくれました。できます。 webgreaseをアップグレードした後、Version = 1.6.5135.21930があり、完全に機能しました。

結論として、このエラー(ファイルまたはアセンブリ 'WebGrease、Version = 1.5.1.25624をロードできませんでした)は、System.Web.Optimization libがサブスクライブされていないwebgrease dllバージョンを参照しているためであると考えています。

1
faradzen

他の答えは私にとってこれを解決しませんでした。新しいMVC 5 APIプロジェクトを追加していますが、古いMVC 2 APIでNiceを再生していませんでした。パッケージの更新を実行した後、前述のエラーが表示されました。私の解決策は、問題のプロジェクトのweb.configでNuGetによって追加されたWebGrease参照を削除することでした。

解決するには:例外をスローするプロジェクトのweb.configを開き、WebGreaseに追加された依存関係を削除またはコメントアウトします。

1
rjchicago

これは私がそれを回避するためにしたことです、

  1. 現在の(破損したプロジェクト)のWeb.configファイルのコピーを「Corrupted-Web.Config」に保存しました。プロジェクトソリューションを閉じます。
  2. 私が作成したプロジェクトと同じタイプの新しいアプリケーションを作成しました。 ProjTempと呼ばれます。
  3. 「PorjTemp」を保存して実行し、Web.Configのコピーを「OrigTemp_Web.config」に保存します
  4. Web.configファイルを閉じます。
  5. [ProjTemp]で、[ツール]-> [NuGetパッケージマネージャー]-> [ソリューションのNuGetパッケージの管理] --->選択して、関連するインストール済みパッケージをすべて更新します。 6次に、新しく更新されたWeb.configファイルを開きます。更新された「」から情報を取得してコピーします

<runtime>
        <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">  
             --- Copy this section to replace in the corrupted file.---
       </assemblyBinding>
</runtime>

  1. プロジェクトを保存します。再構築して実行します。これが役立つことを願っています! ....

VS2015などの修正されたものを次に示します。


<runtime>
           <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
                 <dependentAssembly>
                        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
                        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
                 </dependentAssembly>
                <dependentAssembly>
                        <assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
              </dependentAssembly>
              <dependentAssembly>
                        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
                        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /
              </dependentAssembly>
              <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /
                </dependentAssembly>
                <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin.Security.OAuth" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
                </dependentAssembly>
                <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin.Security.Cookies" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
                 </dependentAssembly>
                 <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin.Security" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                         <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
                  </dependentAssembly>
                  <dependentAssembly>
                         <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
                        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
                   </dependentAssembly>
          </assemblyBinding>
  </runtime>

Githubのソリューション Sami、Oweis 4 Computer

0
Sami