J'essaie d'utiliser la nouvelle fonctionnalité de regroupement dans un projet que j'ai récemment converti de MVC 3 à MVC 4 bêta. Il nécessite une ligne de code dans global.asax, BundleTable.Bundles.RegisterTemplateBundles();
, qui nécessite using System.Web.Optimization;
en haut.
Lorsque je fais cela, je reçois les lignes ondulées rouges qui disent: "Vous manque-t-il une référence à l'Assemblée?" Lorsque j'essaie d'ajouter une référence et que je clique sur l'onglet .NET dans la boîte de dialogue, effectuez un tri de A à Z, je ne vois pas System.Web.Optimization
.
Comment puis-je ajouter cette référence à mon projet? Merci.
Le package Microsoft.Web.Optimization est maintenant obsolète. Avec ASP.NET (MVC) 4 et versions ultérieures, vous devez installer Microsoft Optimisation Web ASP.NET:
Installez le paquet à partir de nuget :
Install-Package Microsoft.AspNet.Web.Optimization
Créez et configurez des ensembles 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 () à partir de Application_Start () dans votre fichier global.asax.cs:
using System.Web.Optimization;
protected void Application_Start() {
...
BundleConfig.RegisterBundles(BundleTable.Bundles);
...
}
Dans votre view.cshtml, incluez l'espace de noms Optimization et rendez le (s) bundle (s):
@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
Avec la version finale d’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 le lot 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 une inclusion à l'ensemble 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 release, ils seront regroupés et minifiés.
Mettez à jour (réinstallez) le paquet à partir de nuget, vous pouvez utiliser la commande:
update-Package Microsoft.AspNet.Web.Optimization -reinstall
Dans mon cas, il s'agissait d'un problème lié à tfs, car ce dernier exclut les fichiers binaires. Le nugget PM recherche le nugget installé et ne met pas à jour la bibliothèque. Si vous rencontrez le même problème:
NB: le dossier du package est au même niveau que le fichier yousolution.sln
Utilisez nuget pour désinstaller System.Web.Optimization dans la console du gestionnaire de paquets, comme suit:
ninstall-Package Microsoft.AspNet.Web.Optimization
Puis réinstallez en utilisant:
Paquet d'installation Microsoft.AspNet.Web.Optimization
Peut résoudre ce problème pour vous.
Installez-le à partir de NUGet via Visual Studio Ouvrez Visual Studio 2010, sélectionnez Outils-> Gestionnaire de packages de bibliothèque-> Console du gestionnaire de packages.
Cela ouvrira le conslve, coller
Install-Package Microsoft.AspNet.Web.Optimization
et entrez. et vous avez terminé
défini dans Global.asax application_start (en mode RELEASE, etc.):
BundleTable.EnableOptimizations = **true**;
pour activer la minification et remplacer par false en mode DEBUG pour afficher tous les fichiers de script et de style individuellement.