Question Comment ajouter une référence à System.Web.Optimization pour MVC-3-converti en application 4


J'essaie d'utiliser la nouvelle fonctionnalité de regroupement dans un projet que j'ai récemment converti de MVC 3 à MVC 4 beta. Il nécessite une ligne de code dans global.asax, BundleTable.Bundles.RegisterTemplateBundles();, ce qui nécessite using System.Web.Optimization; au sommet.

Quand je fais cela, je reçois les lignes rouges ondulées qui disent: "Vous manque-t-il une référence d'assemblage?" Lorsque j'essaie d'ajouter une référence, et cliquez sur l'onglet .NET dans la boîte de dialogue, trier de A à Z, je ne vois pas System.Web.Optimization.

Comment ajouter cette référence à mon projet? Merci.


440
2018-02-28 03:13


origine


Réponses:


Le package Microsoft.Web.Optimization est désormais obsolète. Avec ASP.NET (MVC) 4 et supérieur, vous devez installer Microsoft ASP.NET Web Optimization Framework:

  • Installez le paquet de nuget:

    Install-Package Microsoft.AspNet.Web.Optimization
    
  • Créez et configurez des bundles dans 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")
            );
        }
    }
    
  • Appelez la fonction RegisterBundles () depuis Application_Start () dans votre global.asax.cs:

    using System.Web.Optimization;
    
    protected void Application_Start() {
         ...
         BundleConfig.RegisterBundles(BundleTable.Bundles);
         ...
    }
    
  • Dans votre vue.cshtml, ajoutez l’espace de noms Optimisation et affichez le ou les ensembles:

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

Voir http://www.asp.net/mvc/overview/performance/bundling-and-minification pour plus d'informations

Mettre à jour
La version 1.1.x est disponible, lisez les notes de publication: https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization


697
2018-06-11 13:06



Avec la version finale publiée de ASP.Net MVC 4, l'approche est la suivante:

  • Installez Microsoft.AspNet.Web.Optimization via nuget (car il n'est pas installé par le framework)

    install-package Microsoft.AspNet.Web.Optimization
    
  • Créez l'ensemble dans Global.asax Application_Start:

    var scripts = new ScriptBundle("~/MyBundle");
    scripts.IncludeDirectory("~/Scripts/MyDirectory", "*.js");
    BundleTable.Bundles.Add(scripts);
    
  • Ajoutez l'espace de noms "System.Web.Optimization" aux "vues" web.config:

     <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Optimization" />
        </namespaces>
    </pages>
    
  • Dans votre view.cshtml, ajoutez un include au bundle créé à la dernière étape:

    @Scripts.Render("~/MyBundle")
    

En mode débogage, tous les fichiers de script de votre répertoire seront rendus individuellement; en mode de libération, ils seront regroupés et minifiés.


81
2018-03-04 18:39



Dans mon cas c'était un problème de tfs, puisque tfs exclut des binaires, ainsi le Nugget PM trouve le nugget installé et ne met pas à jour la bibliothèque Si vous avez un problème similaire:

  • Aller au contrôle de la source
  • Accédez à la page .. \ packages \ Microsoft.Web.Optimization
  • Ajouter le dossier lib (décocher les extensions binaires exclues)
  • Mettez à jour votre solution et ajoutez la référence dll du chemin

NB: le dossier du paquet est au même niveau que le fichier yousolution.sln


14
2017-11-14 14:52



Mettre à jour (réinstaller) le paquet de nuget, vous pouvez utiliser la commande:

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


12
2018-01-22 21:35



Utiliser nuget pour désinstaller System.Web.Optimization dans la console du gestionnaire de paquets comme ceci:

Uninstall-Package Microsoft.AspNet.Web.Optimization

Puis réinstallation en utilisant:

Package d'installation Microsoft.AspNet.Web.Optimization

Peut résoudre ce problème pour vous.


8
2018-05-07 09:13



Installez-le depuis NUGet via Visual Studio Ouvrez Visual Studio 2010, sélectionnez Outils-> Gestionnaire de packages de bibliothèques-> Console du gestionnaire de packages

Cela va ouvrir le conslve, coller

Install-Package Microsoft.AspNet.Web.Optimization 

et entrez. et vous avez terminé


5
2017-07-16 12:40



défini dans Global.asax application_start (en mode RELEASE, etc.):

BundleTable.EnableOptimizations = **true**;

pour permettre la minification et changer en faux Mode débogage pour rendre tous les fichiers de script et de style individuellement.


2
2018-05-29 06:53