34

我正在开发一个从 Visual Studio 2010 开始的 MVC 4 项目。现在我正在使用 Visual Studio 2012 的机器上工作,因为我无法访问我最初正在使用的机器。我整个早上都在努力寻找答案,但它们似乎对我的情况没有帮助。

我遵循如何为 MVC-3-converted-to-4 应用程序添加对 System.Web.Optimization 的引用,并从 nuget 直接安装到我的解决方案中。即使我已经在我的机器上下载并安装了所有必需的参考包,但System.Web.Optimization仍然丢失。还有什么我可以做的吗?

编辑:当我尝试构建项目时,我收到以下错误

  • 命名空间“System.Web”中不存在类型或命名空间名称“优化”(您是否缺少程序集引用?) - BundleConfig.cs
  • 命名空间“System.Web”中不存在类型或命名空间名称“优化”(您是否缺少程序集引用?) - Global.asax.cs
  • 找不到类型或命名空间“BundleCollection”(您是否缺少 using 指令或程序集引用?) - BundleConfig.cs

我的 BundleConfig.cs 包含

using System.Web;
using System.Web.Optimization;

namespace BCCDC_AdminTool
{
    public class BundleConfig
    {
     // For more information on Bundling, visit http://go.microsoft.com/fwlink/?    LinkId=254725
    public static void RegisterBundles(BundleCollection bundles)
    {
           bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

           bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                    "~/Scripts/jquery-ui-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));

        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

            bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

            bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                    "~/Content/themes/base/jquery.ui.core.css",
                    "~/Content/themes/base/jquery.ui.resizable.css",
                    "~/Content/themes/base/jquery.ui.selectable.css",
                    "~/Content/themes/base/jquery.ui.accordion.css",
                    "~/Content/themes/base/jquery.ui.autocomplete.css",
                    "~/Content/themes/base/jquery.ui.button.css",
                    "~/Content/themes/base/jquery.ui.dialog.css",
                    "~/Content/themes/base/jquery.ui.slider.css",
                    "~/Content/themes/base/jquery.ui.tabs.css",
                    "~/Content/themes/base/jquery.ui.datepicker.css",
                    "~/Content/themes/base/jquery.ui.progressbar.css",
                    "~/Content/themes/base/jquery.ui.theme.css"));
        }
    }
}
4

12 回答 12

78

我在 VS2012 中打开的 VS2010 项目遇到了同样的问题。Microsoft.AspNet.Web.Optimization 包丢失了,所以我只需要使用 Nuget 包管理器下载它。

您可以在控制台中运行:Install-Package Microsoft.AspNet.Web.Optimization

于 2013-07-22T13:01:08.747 回答
59

我知道这很令人困惑,但你需要Install-Package Microsoft.AspNet.Web.Optimization

于 2013-07-01T09:08:14.683 回答
14

尝试转到 Views 文件夹中的 web.config 并删除以下行:

        <add namespace="System.Web.Optimization" />

那为我修好了。

于 2014-02-19T16:49:00.420 回答
12

这是一个很长的镜头,但无论如何,右键单击项目 --> 属性页并确保 System.Web.Optimization 条目存在。如果没有,请将 System.Web.Optimization.dll 复制到您的 bin 文件夹或将其作为参考导入。

编辑:mvc 项目没有“属性页”菜单选项。

您可以尝试的另一件事是创建一个新的 mvc4 基本项目,转到解决方案的 bin 文件夹并将 System.Web.Optimization.dll 复制到另一个给您错误的项目的 bin 文件夹中。如果找不到 dll,请尝试更新 nuget 包。

于 2013-04-23T21:52:22.127 回答
7

我为此奋斗了一个小时,但上述建议都没有奏效。最后只有以下工作(出于某种迟钝的原因):

  1. ctrl-q -> 输入“包管理器控制台”
  2. Uninstall-Package Microsoft.AspNet.Web.Optimization <problem project name>
  3. Install-Package Microsoft.AspNet.Web.Optimization <problem project name>

警告/警告

  • 以上将安装最新版本的Microsoft.AspNet.Web.Optimization. 如果您想要特定版本(例如 v1.1.1),请使用Install-Package Microsoft.AspNet.Web.Optimization <problem project name> -Version 1.1.1
  • 不要忘记<problem project name>参数或 nuget 将在解决方案级别运行,可能会践踏兄弟项目。
  • 请注意,省略项目名称本身对于进行解决方案级别的版本更新或包安装非常方便。
于 2015-10-29T18:39:02.560 回答
6

转到工具 >> 库包管理器 >> 管理 Nuget 包 >> 安装 Microsoft ASP.NET Web 优化框架

于 2014-04-24T10:26:51.250 回答
3

卸载并重新安装 Microsoft.AspNet.Web.Optimization 包为我解决了这个问题。

于 2014-08-22T10:24:12.613 回答
1

我通过将对程序集 System.Web.Optimization.dll 的引用设置为将本地复制为 true 来解决此问题。

于 2014-01-28T20:15:17.160 回答
1

使用 Nuget 包管理器重新安装 system.web.optimizaiton 为我解决了这个问题。

于 2016-02-23T01:32:01.063 回答
0

在特定场景中对我有用的(我从源代码管理下载了一个 MVC 项目并收到该错误)是在同一解决方案上打开一个新的 MVC 项目。之后我可以删除我创建的新项目,它仍然有效(在 VS2012 上)。

于 2014-10-21T15:55:21.723 回答
0

简单的解决方案。以管理员模式打开 Visual Studio。它将解决您的错误。

于 2020-04-29T18:49:41.323 回答
-2

我知道这个问题有很多答案,但试一试——以管理员身份在 Visual Studio 中打开项目。它确实解决了我的情况。

于 2015-04-16T16:35:59.683 回答