我一直在努力與Visual Studio今天,但我不能得到它的工作。Visual Studio構建ASP.NET MVC Web與舊的dll參考
的問題是每當我試圖建立或重建我的ASP.NET MVC Web項目,然後我得到了以下錯誤:
無法加載文件或程序集「System.Web.Mvc」或之一它的依賴關係。定位的程序集清單定義與程序集引用不匹配。 (異常來自HRESULT:0x80131040)
我發現問題是由於以前提到的dll文件被複制到「Bin」文件夾中作爲構建過程的一部分。當我查看該文件的詳細信息時,發現它與我的代碼中的引用相比是次要版本(4.0.20710.0)。
我忘了提及這個解決方案由4個項目組成:主項目(這是網站)和3個小項目,它們被編譯成dll並作爲區域動態添加到網站中。
這是我已經檢查到現在爲止:
主要項目的web.config(片段)
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
主要項目packages.config(片段)
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" />
主要項目視圖的web.config(片段)
<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
而且我已經檢查了我的小項目上面提到的相同的文件,但沒有運氣,直到如今。讓它工作的唯一方法是運行網頁並手動從bin文件夾中刪除dll並複製正確的版本。
我需要這個由Visual Studio自動完成,因爲每次我在不同的計算機中檢出項目時都會遇到同樣的問題。
我希望你能幫助我。謝謝。