44

バージョンにアップグレードWebGrease1.3.0ているときにエラーが発生します:

ファイルまたはアセンブリ'WebGrease、Version = 1.0.0.0、Culture = neutral、PublicKeyToken=31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)

ソースエラー:

Line 6:      <title>@ViewBag.Title</title>
Line 7:      @Styles.Render("~/Content/bundles/bootstrap")

このエラーを解決する方法。

4

14 に答える 14

64

これが私にとってうまくいった答えであり、上記の答えのいくつかを組み合わせたものです。まず、次のパッケージをインストール/アンインストール/再インストールします。

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

次に、 ~/Views/Shared/_Layout.cshtml の内容のコピーを作成して _Layout.cshtml ファイルを削除し、再作成して内容を貼り付けます。

これは私のために働いた最終的な修正です。

于 2013-01-23T19:32:51.990 に答える
17
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> </dependentAssembly>

上のコードをWeb.config次のように変更します

<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0"/> </dependentAssembly>
于 2013-02-20T09:34:54.837 に答える
4

古い (1.0.0.0?) バージョンのアセンブリを参照しているようです (現在のバージョンが 1.3.0.0 であると仮定)。この場合、web.config でアセンブリ リダイレクトを行うか、バイナリを再コンパイルして最新バージョンを使用する必要があります。

別の可能性として、最新バージョンが古いアセンブリ バージョン (1.0.0.0) と同じアセンブリ バージョンを共有している場合、コードを再コンパイルして正しいアセンブリを使用し、正しいコピーが使用されていることを確認する必要があります (GAC で間違ったアセンブリを確認し、fuslogvを使用して正確なファイルを調査します)。エラーの原因)。

于 2012-11-29T05:29:57.597 に答える
3

私も同じ問題を抱えていました。別の開発者がWebGreaseパッケージ(および他の開発者)をアップグレードしましたが、何かが同期またはチェックインされませんでした。パッケージファイルを編集して、既存のパッケージへの参照を削除しました。次に、パッケージマネージャーを使用して再インストールしました。最後に、パッケージを更新しました。

packages.configファイルがプロジェクト内のファイル(適切なバージョンを含む)と一致しない場合、パッケージはインストールまたは更新されないようです。ただし、パッケージマネージャーではエラーは発生しませんが、パッケージの更新またはインストールに失敗するだけです。

于 2012-12-13T04:41:38.143 に答える
2

私のために働いたバインディングリダイレクト:

<dependentAssembly>
  <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.3.0.0"/> </dependentAssembly>
</assemblyBinding>

微妙な違いは、このバージョン (1.3.0.0) を属性に含めなかったことoldVersionです。

失敗ケーキ!

于 2013-04-23T18:51:15.060 に答える
1

エラーではなく警告であることを除いて、同様の問題がありました。WebGrease を 1.3.0 に更新した後、ビルドによって警告ソースが宣言に追加されました。web.config ファイルに適切なアセンブリ リダイレクトがあることを確認した後、最終的に新しい _Layout.cshtml ビューを作成し、以前とまったく同じかみそりマークアップ (コピー/貼り付け) で古いファイルに上書き保存しました。その後、警告は消えました。

警告の内容は正確にはわかりませんが、コードをファイルにコピーし、新しいファイルに貼り付けて、元のファイルを上書きしてみてください。

なぜこれが機能するのかについて誰かが洞察を持っているなら、私はすべて耳を傾けています.

于 2012-12-08T21:25:29.817 に答える
1

これは Microsoft.AspNet.Web.Optimization の問題です (Optimise は前進しています)。

Optimize をアンインストールし、WebGrease アセンブリ リダイレクトを web.config から削除して、WebGrease をダウングレードする必要があります。

次に、Optimize を再インストールし、WebGrease をアップグレードしないようにします。

簡単な修正ですが、ビルドが機能しました。

于 2013-01-09T17:09:40.317 に答える
0

Hriju と Nathan と同じ処理 (アンインストール、再インストール、および更新) で、newVersion属性を省略せずにそのままにしました。しかし、WebGrease は 1.1.0 から 1.3.0 に直接移行したため、1.2.0 は必要ありませんでした (jenson-button-event のように) (スペインの JB には幸運を祈ります)。

<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.3.0.0" />

衒学?たぶん、でもそれは常に詳細にありますよね?これで修正されました。

とにかく、彼らが次のアップデートでそれを正しく行うことを願っています.

于 2013-04-24T05:38:52.740 に答える
0

私の場合、この方法はすべてうまくいきませんでした。最後に、パッケージ マネージャーを使用して Microsoft.AspNet.Web.Optimization および WebGrease パッケージをアンインストールすることでこの問題を解決し、プロジェクト ファイル (.csproj) をメモ帳で開き、この 2 つのパッケージに関連するすべてのエントリを削除すると、問題が発生したことが判明しました。最後に、パッケージ マネージャーを使用してこの 2 つのパッケージを再度インストールし、プロジェクトを実行します。すべての作業は今のところ問題ありません。

于 2014-03-17T13:48:54.700 に答える
0

@roadsunknown に感謝します。ホスト マシンがフリーズした後に構成が停止したため、VM が適切にシャットダウンされませんでした。これを解決するために、NuGet を使用して Microsoft.AspNet.Web.Optimization をアンインストールし、packages.config で WebGrease への参照を削除し、最後に NuGet を使用して Microsoft.AspNet.Web.Optimization を再インストールしました。

于 2013-01-12T17:48:08.463 に答える