如何引用 System.Web.Optimization 程序集的版本 1.1.0.0?

5
我目前正在尝试通过Nugget在我的MVC 4应用程序中使用BlueImp的Jquery-File-Upload文件上传。此文件上传依赖于System.Web.Optimization命名空间才能正常工作。

我的应用程序一直抛出以下错误:

Error 9 Assembly 'Backload, Version=1.9.3.0, Culture=neutral, PublicKeyToken=02eaf42ab375d363' uses 'System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

我尝试调整web.config文件如下:

<dependentAssembly>
    <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>

我仍然收到相同的消息。

我已经搜索并找到链接,要求通过nugget安装Microsoft.AspNet.Web.Optimization,我已经这样做了,但问题仍未解决。

请问如何添加版本为1.1.0.0的System.Web.Optimization.dll。

2个回答

7
这是因为Backload内部引用的是Microsoft.AspNet.Web.Optimization 1.1.0版本。在一个新的MVC项目中,通常会引用旧版本1.0.0。您只需要更新到新版本:
右键单击项目中的引用,选择“管理NuGet包”,在弹出的对话框中选择左侧的“更新”。然后,在中间的窗格中查找“Microsoft ASP.NET Web Optimization Framework”版本1.1.0。
NuGet: http://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization/ 详细描述: http://docs.nuget.org/docs/start-here/managing-nuget-packages-using-the-dialog

我按照你的建议操作后,仍然收到相同的消息。尽管安装了新版本,但“System.Web.Optimization dll”仍然是旧版本(版本1.0.0.0)。似乎NuGet包没有更新该dll。我还是很困惑,请提供任何建议。 - Shittu Joseph Olugbenga
删除旧dll(1.0.0)的引用,移除packages.config(1.1.0)中的条目,然后重新安装NuGet包。 - helgans

3
这是我解决这个问题的方法。首先,我跟随@helgans在他的答案下的评论,但仍然一直得到对system.web.optimization版本1.0.0的引用。我还从我的网站的bin文件夹中删除了dll文件,并从另一个项目引用了版本1.1.0,但问题仍然存在。
在解决问题时,我发现旧版本正在从应用程序的库文件夹中复制(好吧,我不知道怎么做)。这使得引用的版本保持为版本1.0.0,即使我从另一个项目引用了版本1.1.0或重新安装了NuGet包也是如此。
为解决此问题,我采取了以下步骤:
  1. 我从Library文件夹中删除了dll文件。
  2. 删除了旧版本的引用(感谢@helgans)
  3. 从bin文件夹中删除了dll文件
  4. 卸载包:Uninstall-Package Microsoft.AspNet.Web.Optimization -Force
  5. 重新安装包
现在NuGet会添加对版本1.1.0的引用。

我删除了整个bin文件夹,然后执行了上面的第4步和第5步。感谢您的提示。 - bkwdesign

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接