Как добавить ссылку на System.Сеть.Оптимизация для приложения MVC-3-converted-to-4



Я пытаюсь использовать новую функцию связывания в проекте, который я недавно преобразовал из MVC 3 в MVC 4 beta. Для этого требуется строка кода в global.асакс,BundleTable.Bundles.RegisterTemplateBundles();, который требует using System.Web.Optimization; в верхней части.



когда я это делаю, я получаю красные волнистые линии, которые говорят: "вам не хватает ссылки на сборку?"Когда я пытаюсь добавить ссылку и нажать на вкладку .NET в диалоговом окне, сортировать из A-Z, я не вижу System.Web.Optimization.



как добавить эту ссылку в мой проект? Спасибо.

611   7  

7 ответов:

Microsoft.Сеть.Пакет оптимизации теперь устарел. С помощью ASP.NET (MVC) 4 и выше вы должны установить Microsoft ASP.NET структура веб-оптимизации:

  • установите пакет из nuget:

    Install-Package Microsoft.AspNet.Web.Optimization
    
  • создание и настройка пакетов в App_Start\BundleConfig.cs:

    public class BundleConfig
    {
        public static void RegisterBundles(BundleCollection bundles) {
            bundles.Add(new ScriptBundle("~/Scripts/jquery").Include(
                "~/Scripts/Lib/jquery/jquery-{version}.js",
                "~/Scripts/Lib/jquery/jquery.*",
                "~/Scripts/Lib/jquery/jquery-ui-{version}.js")
            );
    
            bundles.Add(new ScriptBundle("~/Scripts/knockout").Include(
                 "~/Scripts/Lib/knockout/knockout-{version}.js",
                 "~/Scripts/Lib/knockout/knockout-deferred-updates.js")
            );
        }
    }
    
  • вызовите функцию RegisterBundles() из Application_Start () в вашем глобальный.асакс.cs:

    using System.Web.Optimization;
    
    protected void Application_Start() {
         ...
         BundleConfig.RegisterBundles(BundleTable.Bundles);
         ...
    }
    
  • на ваш взгляд.cshtml включает пространство имен оптимизации и отображает пакет (ы):

    @using System.Web.Optimization
    
    @Scripts.Render("~/Scripts/jquery")
    @Scripts.Render("~/Scripts/knockout")
    

см.http://www.asp.net/mvc/overview/performance/bundling-and-minification для получения дополнительной информации

обновление
Версия 1.1.x доступен, прочитайте примечания к выпуску:https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization

С окончательной выпущенной версией ASP.Net MVC 4 подход заключается в следующем:

  • Установить Microsoft.сеть САШ.Сеть.Оптимизация через nuget (так как он не установлен фреймворком)

    install-package Microsoft.AspNet.Web.Optimization
    
  • создать пакет в глобальном.эйсакс событий Application_Start:

    var scripts = new ScriptBundle("~/MyBundle");
    scripts.IncludeDirectory("~/Scripts/MyDirectory", "*.js");
    BundleTable.Bundles.Add(scripts);
    
  • добавить системы".Сеть.Оптимизация "пространства имен для веб-сайта "представления".config:

     <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Optimization" />
        </namespaces>
    </pages>
    
  • на ваш взгляд.cshtml по добавить включить в пакет, созданный на последнем шаге:

    @Scripts.Render("~/MyBundle")
    

в режиме отладки все файлы сценариев в вашем каталоге будут отображаться индивидуально; в режиме выпуска они будут объединены и уменьшены.

в моем случае это была проблема tfs, так как TFS исключает двоичные файлы, поэтому самородок PM находит установленный самородок и не обновляет библиотеку Если у вас есть аналогичная проблема:

  • перейти к системе управления версиями
  • перейдите к ..\packages\Microsoft.Сеть.Оптимизация
  • Добавить папку lib (снимите флажок исключить двоичные расширения)
  • обновите свое решение и добавьте ссылку на dll из пути

NB: папка пакета находится в тот же уровень yousolution.sln file

обновить (переустановить) пакет из nuget, вы можете использовать команду:

update-Package Microsoft.AspNet.Web.Optimization -reinstall

использование nuget для удаления системы.Сеть.Оптимизация в консоли диспетчера пакетов выглядит следующим образом:

Удалить-Пакет Microsoft.сеть САШ.Сеть.Оптимизация

затем переустановите с помощью:

Установить Пакет Microsoft.сеть САШ.Сеть.Оптимизация

может решить эту проблему для вас.

установить с NUGet через Visual Studio Откройте Visual Studio 2010, выберите сервис - > Диспетчер пакетов библиотек - > консоль диспетчера пакетов

Это откроет conslve, вставить

Install-Package Microsoft.AspNet.Web.Optimization 

и введите. и вы сделали

установить в мировой.asax application_start (в режиме выпуска и т. д.):

BundleTable.EnableOptimizations = **true**;

чтобы включить минимизацию и изменить значение false в режим отладки отображать все файлы скриптов и стилей по отдельности.

Comments

    Ничего не найдено.