0

MVC 3 RC プロジェクトでCombresを使用していますが、Web サーバーにデプロイするとアセンブリ バインディング エラーが発生します。

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

<%= Html.CombresLink("commonJs") %>

私の開発マシンには、GAC に MVC 1 および 2 アセンブリがあるため、問題なく動作します。Web サーバーの GAC には MVC のバージョンがなく、MVC 3 アセンブリをビン展開しています。私のプロジェクトは System.Web.Mvc のバージョン 3.0.0.0 を参照しており、web.config に次のセクションがあります。

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

私は、このセクションが Combres に代わりにバージョン 3.0.0.0 を使用するように指示すると考えました。アプリケーションが参照を解決できないのはなぜですか?

4

1 に答える 1

2

バインディング リダイレクトが連鎖するとは思わない - どこかに 1.0 への参照があり、設定で存在しない 2.0 をロードするように指示されている。

oldVersion を「1.0.0.0-2.0.0.0」に設定したバインディング リダイレクトが 1 つだけ必要です。

于 2011-01-08T00:22:51.130 に答える