1. ホーム
  2. asp.net-mvc-4

[解決済み] MVC-3から4へ変換されたアプリでSystem.Web.Optimizationへの参照を追加する方法

2022-01-30 18:25:31

質問

最近MVC 3からMVC 4ベータに変換したプロジェクトで、新しいバンドル機能を使おうとしています。global.asaxに1行のコードが必要です。 BundleTable.Bundles.RegisterTemplateBundles(); を必要とします。 using System.Web.Optimization; を先頭にしています。

これを実行すると、赤い四角い線が表示され、"アセンブリ参照が不足していますか"参照を追加しようとし、ダイアログで.NETタブをクリックしてA-Zからソートすると、表示されていません。 System.Web.Optimization .

このリファレンスを自分のプロジェクトに追加するにはどうすればよいですか?

解決方法は?

更新情報
バージョン1.1.xを公開しました。リリースノートをご覧ください。 https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization


Microsoft.Web.Optimizationパッケージは現在では廃止されています。ASP.NET (MVC) 4 以降では、Microsoft ASP.NET Web Optimization Framework をインストールする必要があります。

  • からパッケージをインストールします。 ナゲット :

    Install-Package Microsoft.AspNet.Web.Optimization
    
    
  • App_StartBundleConfig.cs で bundle(s) を作成し、設定する。

    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")
            );
        }
    }
    
    
  • global.asax.cs 内の Application_Start() から RegisterBundles() 関数を呼び出します。

    using System.Web.Optimization;
    
    protected void Application_Start() {
         ...
         BundleConfig.RegisterBundles(BundleTable.Bundles);
         ...
    }
    
    
  • view.cshtml で Optimization 名前空間をインクルードし、バンドルをレンダリングします。

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

参照 http://www.asp.net/mvc/overview/performance/bundling-and-minification 詳細はこちら