463 votes

Comment ajouter une référence à System.Web.Optimisation pour MVC-3-converti à 4 app

Je suis en train d'utiliser la nouvelle fonctionnalité de regroupement dans un projet que j'ai récemment converti à partir MVC 3 à MVC 4 beta. Il nécessite une ligne de code dans le mondial.asax, BundleTable.Bundles.RegisterTemplateBundles();, ce qui exige using System.Web.Optimization; en haut.

Quand je fais cela, je reçois le rouge des traits ondulés qui disent, "vous manque une référence d'assembly?" Lorsque j'essaie d'ajouter une référence, cliquez sur l' .NET onglet dans la boîte de dialogue trier de A à Z, je ne vois pas System.Web.Optimization.

Comment puis-je ajouter cette ref pour mon projet? Merci.

739voto

mhu Points 6924

La Microsoft.Web.Optimisation paquet est maintenant obsolète. Avec la sortie de la version finale de ASP.NET (MVC) 4 vous devez installer Microsoft ASP.NET l'Optimisation Web du Cadre:

  • Installer le paquet nuget:

    Install-Package Microsoft.AspNet.Web.Optimization
    
  • Créer et configurer bundle(s) 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 le RegisterBundles() la fonction de Application_Start() dans votre global.asax.cs:

    using System.Web.Optimization;
    
    protected void Application_Start() {
         ...
         BundleConfig.RegisterBundles(BundleTable.Bundles);
         ...
    }
    
  • De votre point de vue.cshtml comprennent l'Optimisation de l'espace de noms et de rendre le bundle(s):

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

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

Mise à jour
La Version 1.1.x est disponible, lisez les notes de version: http://aspnetoptimization.codeplex.com/releases/view/101096

85voto

Noel Abrahams Points 3678

Avec la version finale de ASP.Net MVC 4 la démarche est la suivante:

  • L'Installation De Microsoft.AspNet.Web.Optimisation via nuget (comme il n'est pas installé par le cadre)

install-package Microsoft.AspNet.Web.Optimisation

  • Créer le bundle dans le Mondial.asax Application_Start:

     var scripts = new ScriptBundle("~/MyBundle");
    scripts.IncludeDirectory("~/Scripts/MyDirectory", "*.js");
    BundleTable.Bundles.Add(scripts);
    
  • Ajouter le Système".Web.L'optimisation de l'espace de noms pour les "Vues" du web.config:

    <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Optimization" />
        </namespaces>
    </pages>
  • De votre point de vue.cshtml ajouter un include pour le bundle créé dans la dernière étape:
<!-- Mashed Scripts -->
@Scripts.Render("~/MyBundle")

En mode debug, tous les fichiers de script dans votre répertoire rendre individuellement; en mode release, elles seront regroupées et minimisé.

14voto

amine Points 81

Dans mon cas, c'était un tfs problème, depuis tfs exclure les fichiers binaires, de sorte que la Pépite PM trouver la pépite d'installé et de ne pas mettre à jour la bibliothèque Si vous avez des problème similaire :

  • Aller à la source de contrôle
  • Accédez à l' ..\packages\Microsoft.Web.Optimisation
  • Ajouter dossier lib (décochez la case exclure les extensions binaires)
  • Mise à jour de votre solution et ajouter la référence de la dll à partir de la trajectoire

NB : le dossier package est dans le même niveau de yousolution.la sln fichier

12voto

Myzifer Points 435

Il semble que je ne suis pas le seul à trouver un scénario différent/solution où il a été nécessaire à l'aide de Nuget pour désinstaller l'Optimisation puis le réinstaller pour avoir la référence de nouveau visible.

6voto

Mian Points 66

L'installer à partir de NUGet par le biais de visual studio Ouvrez Visual Studio 2010 , sélectionnez Outils-> Gestionnaire de paquets de Bibliothèque-> Gestionnaire de paquets de la Console

Cela va ouvrir la conslve, coller Install-Package Microsoft.AspNet.Web.L'optimisation et l'entrée. et vous avez terminé

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X