Como adicionar referência ao sistema.Site.Optimization for MVC-3-converted-to-4 app

Estou a tentar usar o novo pacote num projecto que converti recentemente de MVC 3 para MVC 4 beta. Requer uma linha de código no global.asax, {[[0]}, que requer using System.Web.Optimization; no topo.

Quando faço isto, fico com as linhas vermelhas que dizem: "estás a perder uma referência à Assembleia?"Quando tento adicionar referência, e carrego na página. NET da janela, ordenar a partir de A-Z, não vejo System.Web.Optimization.

Como acrescento este árbitro ao meu projecto? Obrigado.

Author: Hao Kung, 2012-02-28

7 answers

A Microsoft.Site.O pacote de otimização está agora obsoleto. Com ASP.NET (MVC) 4 e superior você deve instalar a Microsoft ASP.NET Web Optimization Framework:

  • Instale o pacote de nuget:

    Install-Package Microsoft.AspNet.Web.Optimization
    
  • Criar e configurar o pacote(S) em 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")
            );
        }
    }
    
  • Ligue para a função RegisterBundles() da Application_Start () no seu global.asax.cs:

    using System.Web.Optimization;
    
    protected void Application_Start() {
         ...
         BundleConfig.RegisterBundles(BundleTable.Bundles);
         ...
    }
    
  • Na sua opinião.cshtml incluir o espaà § o de nomes de optimizaà § à £ o e renderizar o(s) Pacote (s):

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

Ver http://www.asp.net/mvc/overview/performance/bundling-and-minification Para mais informações

Actualizar
Version 1.1.x está disponível, leia as notas de lançamento: https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization

 706
Author: mhu, 2018-02-08 14:38:02

Com a versão final lançada de ASP.Net MVC 4 a abordagem é a seguinte:

  • Instale A Microsoft.AspNet.Site.Optimization via nuget (uma vez que não está instalado no framework)

    install-package Microsoft.AspNet.Web.Optimization
    
  • Crie o pacote no Global.asax Application_Start:

    var scripts = new ScriptBundle("~/MyBundle");
    scripts.IncludeDirectory("~/Scripts/MyDirectory", "*.js");
    BundleTable.Bundles.Add(scripts);
    
  • Adicione o " sistema.Site.Optimization "namespace to the" Views " web.configuração:

     <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Optimization" />
        </namespaces>
    </pages>
    
  • Na sua opinião.CSHTML adicionar uma inclusão ao pacote criado na última Passo:

    @Scripts.Render("~/MyBundle")
    

No modo de depuração, todos os ficheiros de programas da sua pasta irão ser desenhados individualmente; no modo de libertação serão agrupados e minificados.

 83
Author: Noel Abrahams, 2015-10-20 10:11:14

No meu caso, era um problema do tfs, uma vez que o tfs exclui binários, por isso o MP do Nugget encontra o nugget instalado e não actualiza a biblioteca Se tiver problemas semelhantes:

  • Ir para o controlo de origem
  • navegue para o..\pacotes\Microsoft.Site.Optimization
  • Adicionar uma pasta lib (desligue a opção Excluir as extensões Binárias)
  • actualize a sua solução e adicione a referência dll do path

NB: a pasta de pacotes está no mesmo nível da sua resolução.sln ficheiro

 14
Author: amine, 2012-11-14 14:52:37

Actualizar( reinstalar) o pacote do nuget, poderá usar o comando:

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

 12
Author: M. Salah, 2015-01-22 22:20:27

Usar o nuget para desinstalar o sistema.Site.Optimização na consola do Gestor de pacotes como esta:

Desinstalar O Pacote Microsoft.AspNet.Site.Optimização

Então reinstalando usando:

Install-Package Microsoft.AspNet.Site.Optimização

Pode resolver este problema por si.
 9
Author: Myzifer, 2015-09-04 14:03:59

Instale - o a partir de NUGet através do Visual Studio Open Visual Studio 2010, select Tools - > Library Package Manager - > Package Manager Console

Isto vai abrir a conslve, colar

Install-Package Microsoft.AspNet.Web.Optimization 
E entra. e você acabou.
 5
Author: Mian, 2015-10-02 13:55:54

A nível Global.asax application_start (no modo de libertação, etc.) :

BundleTable.EnableOptimizations = **true**;

Para activar a minificação e mudar para false no modo de depuração para desenhar todos os ficheiros de programas e estilos individualmente.

 2
Author: zenichi, 2013-05-29 06:53:31