System.Web.Optimization 和 Microsoft.Web.Optimization 不会在 vs 2012 中加载参考

Posted

技术标签:

【中文标题】System.Web.Optimization 和 Microsoft.Web.Optimization 不会在 vs 2012 中加载参考【英文标题】:System.Web.Optimization and Microsoft.Web.Optimization won't load reference in vs 2012 【发布时间】:2013-04-17 06:06:42 【问题描述】:

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

我关注How to add reference to System.Web.Optimization for MVC-3-converted-to-4 app 并从 nuget 直接安装到我的解决方案中。即使我已经在我的机器上下载并安装了所有必需的参考包,System.Web.Optimization 仍然丢失。还有什么我可以做的吗?

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

命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(您是否缺少程序集引用?) - BundleConfig.cs 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(您是否缺少程序集引用?) - 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"));
        
    

【问题讨论】:

您是否收到一些错误消息?如果是这样,请更清楚地说明您收到的确切错误消息是编译时错误还是运行时错误。如果不是,请更清楚地解释您当前遇到的确切问题。 我已经添加了更多信息...我不确定是否还有其他可以提供的信息。 【参考方案1】:

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

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

【讨论】:

嗯,我想他试过了。实际上用他自己的话说“我遵循如何为 MVC-3-converted-to-4 应用程序添加对 System.Web.Optimization 的引用并从 nuget 直接安装到我的解决方案中。即使我已经下载并安装了所有必需的参考包在我的机器上,System.Web.Optimization 仍然丢失。我还能做些什么吗?"【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

这为我解决了问题。

【讨论】:

这对我有用。我的情况是我将 MVC 4 添加到了较旧的 Web Forms .NET 4.0 项目中。我添加了 Microsoft.AspNet.Web.Optimization nuget 包,但由于某种原因,当站点部署到实时服务器时仍然出现此错误。从 Views Web.config 中删除它为我解决了这个问题。【参考方案4】:

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

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

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

【讨论】:

这就是我缺乏经验的地方。我在我的项目的属性页上看不到任何显示此类信息的地方。实际上,我似乎也无法在我的 PC 上的任何地方找到 System.Web.Optimization.dll ......不过,这对我来说似乎是一个很好的解决方案。 抱歉,我的错误,mvc 项目没有“属性页”选项。【参考方案5】:

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

    ctrl-q -> 输入“包管理器控制台” Uninstall-Package Microsoft.AspNet.Web.Optimization &lt;problem project name&gt; Install-Package Microsoft.AspNet.Web.Optimization &lt;problem project name&gt;

警告/警告

以上将安装最新版本的Microsoft.AspNet.Web.Optimization。如果您想要特定版本(例如 v1.1.1),请使用 Install-Package Microsoft.AspNet.Web.Optimization &lt;problem project name&gt; -Version 1.1.1 不要忘记 &lt;problem project name&gt; 参数,否则 nuget 将在解决方案级别运行,可能会践踏兄弟项目。 请注意,省略项目名称本身对于进行解决方案级别的版本更新或软件包安装非常方便。

【讨论】:

Update-Package -reinstall Microsoft.AspNet.Web.Optimization - 这是一个双重方法(不确定是否存在差异,但它对我有用)【参考方案6】:

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

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

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

【讨论】:

【参考方案10】:

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

【讨论】:

【参考方案11】:

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

【讨论】:

【参考方案12】:

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

【讨论】:

以上是关于System.Web.Optimization 和 Microsoft.Web.Optimization 不会在 vs 2012 中加载参考的主要内容,如果未能解决你的问题,请参考以下文章

System.Web.Optimization 合并压缩技术的使用

System.Web.Optimization找不到引用

如何从 MVC5 中删除 System.Web.Optimization

使用 System.Web.Optimization Bundling 最小化时有没有办法禁用 js/css 验证?

System.Web.Optimization对脚本和样式表的压缩操作

System.Web.Optimization 是 .Net Framework 4.5 的一部分吗?