2013-07-14 61 views

回答

10

我看到你提供自己的答案,但另一種解決方案是一個<runtime>元素重定向依賴組件和指向正確的一個來更新你的web.config:

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

請注意,更新來自NuGet的項目對大多數程序集自動執行相同的操作。

+1

真棒,謝謝。事實上,我認爲我的解決方案工作,因爲我得到它在本地工作。但是當我開始部署時,我遇到了一個問題,那就是我的DLL中有一個在其manifest中有一個bung引用(我正在使用一些我從MvcFutures v1複製並粘貼的代碼,但是我看不到其中提到的任何版本)。所以你的答案解決了我的次要問題!謝謝! –

5

在Solution Explorer中,單擊參考> System.Web.Mvc。點擊屬性並設置Copy Local = True。

這樣,您將確保在您的項目中獲得正確版本的MVC,而不依賴於GAC中安裝的任何版本。這種方法還使您能夠部署MVC DLL。

2

這解決了這個事情對我來說...

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Abstractions" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Routing" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
+0

請給你的代碼添加一些解釋。 –