web-dev-qa-db-fra.com

System.Web.Optimization et Microsoft.Web.Optimization ne chargeront pas la référence par rapport à 2012

Je travaille sur un projet MVC 4 démarré dans Visual Studio 2010. En ce moment, je travaille sur une machine avec Visual Studio 2012 car je n'ai pas accès à la machine sur laquelle je travaillais à l'origine. J'ai essayé toute la matinée de trouver des réponses, mais elles ne semblent pas aider ma situation.

J'ai suivi Comment ajouter une référence à System.Web.Optimization pour l'application MVC-3 convertie en 4 et installé à partir de nuget directement dans ma solution. Même si tous les packages de référence requis ont été téléchargés et installés sur ma machine, System.Web.Optimization continue de manquer. Y at-il autre chose que je puisse faire?

Modifier: lorsque j'essaie de créer le projet, je reçois les erreurs suivantes

  • Le nom de type ou d'espace de noms 'Optimization' n'existe pas dans l'espace de noms 'System.Web' (manque-t-il une référence d'assembly?) - BundleConfig.cs
  • Le nom de type ou d'espace de noms "Optimisation" n'existe pas dans l'espace de noms "System.Web" (manque-t-il une référence d'assembly?) - Global.asax.cs
  • Le type ou l'espace de noms 'BundleCollection' est introuvable (manque-t-il une directive using ou une référence d'assembly?) - BundleConfig.cs

Mon BundleConfig.cs contient

using System.Web;
using System.Web.Optimization;

namespace BCCDC_AdminTool
{
    public class BundleConfig
    {
     // For more information on Bundling, visit http://go.Microsoft.com/fwlink/?    LinkId=254725
    public static void RegisterBundles(BundleCollection bundles)
    {
           bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

           bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                    "~/Scripts/jquery-ui-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));

        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

            bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

            bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                    "~/Content/themes/base/jquery.ui.core.css",
                    "~/Content/themes/base/jquery.ui.resizable.css",
                    "~/Content/themes/base/jquery.ui.selectable.css",
                    "~/Content/themes/base/jquery.ui.accordion.css",
                    "~/Content/themes/base/jquery.ui.autocomplete.css",
                    "~/Content/themes/base/jquery.ui.button.css",
                    "~/Content/themes/base/jquery.ui.dialog.css",
                    "~/Content/themes/base/jquery.ui.slider.css",
                    "~/Content/themes/base/jquery.ui.tabs.css",
                    "~/Content/themes/base/jquery.ui.datepicker.css",
                    "~/Content/themes/base/jquery.ui.progressbar.css",
                    "~/Content/themes/base/jquery.ui.theme.css"));
        }
    }
}
31
MacSalty

C'est un long plan mais ici ça va quand même, faites un clic droit sur le projet -> Pages de propriétés et assurez-vous que l'entrée System.Web.Optimization existe. Sinon, copiez System.Web.Optimization.dll dans votre dossier bin ou importez-le comme référence.

Edit: les projets mvc n'ont pas l'option de menu "Pages de propriétés".

Une autre chose que vous pouvez essayer est de créer un nouveau projet de base mvc4, accédez au dossier bin de la solution et copiez le System.Web.Optimization.dll dans le dossier bin de votre autre projet qui vous donne l'erreur. Si vous ne trouvez pas la DLL, essayez de mettre à jour les packages de nuget.

12
sdagkas

J'ai eu le même problème avec un projet VS2010 que j'ai ouvert dans VS2012. Le package Microsoft.AspNet.Web.Optimization était manquant, je devais juste le télécharger à l'aide de Nuget Package Manager.

Vous pouvez exécuter dans la console: Install-Package Microsoft.AspNet.Web.Optimization

78
Jonathan Bick

Je sais que c'est déroutant, mais vous devrez Install-Package Microsoft.AspNet.Web.Optimization

59
rido

Essayez d'accéder au site web.config dans le dossier Vues et de supprimer la ligne suivante:

        <add namespace="System.Web.Optimization" />

Cela m'a arrangé.

13
Bryan Legend

J'ai lutté pendant une heure et aucune des suggestions ci-dessus n'a fonctionné. En fin de compte, seuls les éléments suivants ont fonctionné (pour une raison obtuse):

  1. ctrl-q -> tapez "console du gestionnaire de paquets"
  2. Uninstall-Package Microsoft.AspNet.Web.Optimization <problem project name>
  3. Install-Package Microsoft.AspNet.Web.Optimization <problem project name>

AVERTISSEMENT/HEADS-UP

  • ce qui précède installera la dernière version de Microsoft.AspNet.Web.Optimization. Si vous voulez une version particulière (disons v1.1.1), utilisez Install-Package Microsoft.AspNet.Web.Optimization <problem project name> -Version 1.1.1
  • n'oubliez pas le <problem project name> paramètre ou nuget fonctionnera au niveau de la solution, piétinant éventuellement les projets frères.
  • Notez que l'omission du nom du projet est en soi très pratique pour effectuer des mises à jour de version au niveau de la solution ou des installations de packages.
6
sming

Accédez aux outils >> Gestionnaire de packages de bibliothèque >> Gérer les packages Nuget >> installer le framework d'optimisation Web Microsoft ASP.NET

6
rakhesh

La désinstallation et la réinstallation du package Microsoft.AspNet.Web.Optimization l'ont résolu pour moi.

3
Bravax

La réinstallation de system.web.optimization à l'aide du gestionnaire de packages Nuget a résolu ce problème pour moi.

2
Faisal

Je sais qu'il existe de nombreuses réponses à ce problème, mais essayez-le dans Visual Studio en tant qu'administrateur. Cela a résolu mon cas.

0
WonderHeart

Ce qui a fonctionné pour moi dans un scénario spécifique (j'ai téléchargé un projet MVC à partir du contrôle de code source et reçu cette erreur), a été d'ouvrir un nouveau projet MVC sur la même solution. Ensuite, j'ai pu supprimer le nouveau projet que j'ai créé et il fonctionne toujours (sur VS2012).

0
BornToCode

J'ai résolu ce problème en définissant la référence à Assembly System.Web.Optimization.dll pour copier local sur true.

0
James