2012-06-12 9 views
6

私は例を示しており、MVCプロジェクト用のカスタムバンドルを作成するときに "NoTransform"を動作させることはできません。ここでは、 "NoTransform"というエラーが発生したためにコンパイルされないコードがあります。 "エラー1型または名前空間の名前 'NoTransform'が見つかりませんでした(使用するディレクティブまたはアセンブリ参照がありません) 。何かご意見は?新しいバンドルを作成しようとすると、NoTransformが動作しません

using System; 
using System.Collections.Generic; 
using System.Configuration; 
using System.Data.Entity; 
using System.Data.Entity.Infrastructure; 
using System.Linq; 
using System.Web; 
using System.Web.Http; 
using System.Web.WebPages; 
using System.Web.Mvc; 
using System.Web.Optimization; 
using System.Web.Routing; 

namespace CoyleAzure 
{ 


    public class MvcApplication : System.Web.HttpApplication 
    { 
     protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 

      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
      RouteConfig.RegisterRoutes(RouteTable.Routes); 


      // Added to Add DisplayModes 


      DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("Phone") 
      { 
       ContextCondition = (context => (
       (context.GetOverriddenUserAgent() != null) && 
       (
       (context.GetOverriddenUserAgent().IndexOf("iPhone", StringComparison.OrdinalIgnoreCase) >= 0) || 
       (context.GetOverriddenUserAgent().IndexOf("iPod", StringComparison.OrdinalIgnoreCase) >= 0) || 
        (context.GetOverriddenUserAgent().IndexOf("Droid", StringComparison.OrdinalIgnoreCase) >= 0) || 
         (context.GetOverriddenUserAgent().IndexOf("Blackberry", StringComparison.OrdinalIgnoreCase) >= 0) || 
          (context.GetOverriddenUserAgent().StartsWith("Blackberry", StringComparison.OrdinalIgnoreCase)) 
      ) 
      )) 
      }); 






      DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("Tablet") 
      { 
       ContextCondition = (context => (
        (context.GetOverriddenUserAgent() != null) && 
        (
        (context.GetOverriddenUserAgent().IndexOf("iPad", StringComparison.OrdinalIgnoreCase) >= 0) || 
        (context.GetOverriddenUserAgent().IndexOf("Playbook", StringComparison.OrdinalIgnoreCase) >= 0) || 
         (context.GetOverriddenUserAgent().IndexOf("Transformer", StringComparison.OrdinalIgnoreCase) >= 0) || 
          (context.GetOverriddenUserAgent().IndexOf("Xoom", StringComparison.OrdinalIgnoreCase) >= 0) 
         ) 
         )) 
      }); 







      IBundleTransform jsTransformer; 
      IBundleTransform cssTransformer; 

#if DEBUG 
      jsTransformer = new NoTransform("text/javascript"); 
      cssTransformer = new NoTransform("text/css"); 


#else   
      jsTransformer = new JsMinify();   
      cssTransformer = new CssMinify(); 
#endif 

      var 
      DesktopJSBundle = new Bundle("~/Scripts/DesktopJS", jsTransformer); 

      DesktopJSBundle.Include("~/Scripts/jquery-1.6.4. js"); 
      DesktopJSBundle.Include("~/Scripts/jquery-ui-1.8.11. js"); 
      DesktopJSBundle.Include("~/Scripts/jquery.unobtrusive-ajax.js"); 
      DesktopJSBundle.Include("~/Scripts/jquery.validate.js"); 
      DesktopJSBundle.Include("~/Scripts/jquery.validate.unobtrusive.js"); 

      BundleTable.Bundles.Add(DesktopJSBundle); 

      var DesktopCSSBundle = new Bundle("~/Content/DesktopCSS", cssTransformer); 
      DesktopCSSBundle.Include("~/Content/Site.css"); 
      BundleTable.Bundles.Add(DesktopCSSBundle); 



      var MobileJSBundle = new Bundle("~/Scripts/MobileJS", jsTransformer); 
      MobileJSBundle.Include("~/Scripts/jquery-1.6.4.js"); 
      MobileJSBundle.Include("~/Scripts/jquery.mobile-1.1.0.js"); 
      BundleTable.Bundles.Add(MobileJSBundle); 

      var MobileCSSBundle = new Bundle("~/Content/MobileCSS", cssTransformer); 
      MobileCSSBundle.Include("~/Content/jquery.mobile-1.1.0.css"); 
      MobileCSSBundle.Include("~/Content/jquery.mobile.structure-1.1.0.css"); 
      BundleTable.Bundles.Add(MobileCSSBundle); 
      //BundleTable.Bundles.RegisterTemplateBundles(); 
      BundleTable.Bundles.EnableDefaultBundles(); 
     } 




     //BundleConfig.RegisterBundles(BundleTable.Bundles); 




    } 
} 
+0

asp.net mvc ruを使用していますか? – VJAI

答えて

1

NoTransformScriptsStylesのような他の方法は...束ねるとMVC 4ベータおよびMVC 4 RC版で利用可能である縮小の新機能です。私はあなたがASP.NET MVCの適切なバージョンを使用していないことを願って、あなたはコンパイルエラーを取得しています。

http://blog.kurtschindler.net/post/disabling-bundling-and-minification-in-aspnet-45mvc-4

+0

http://blog.kurtschindler.net/disabling-bundling-and-minification-in-asp-net-4-5mvc-4/これはブログの新しいURLです – user636525

3

このコードは、MVC 4ベータ版(またはより正確にSystem.Web.Optimizationベータ1)からですが、あなたはおそらくMVC 4 RC(またはより正確にSystem.Web.Optimizationベータ2)でそれをコンパイルしようとしています(MVC 4の場合)。 MVC 4 RC NoTransformではinternalです。

+1

なぜ彼らがNoTransformを作ったのか分かりません内部。自動リリース/デバッグの検出には本当に便利です。 –

7

NoTransformクラスはもはやBundleにヌルTransformクラスは暗黙のうちにNoTransformを意味し、RCで始まるので、公開する必要はありません。

前に:私たちは、ダミーのインスタンスを必要としないようにきれいだと感じた

new Bundle("~/yourbundle") 

:今

new Bundle("~/yourbundle", new NoTransform()) 

。トランスフォームはレスポンスのcontentTypeを設定するため、潜在的に何らかの問題を引き起こす可能性があるロジックがわずかであるため、内部に保管しました。デフォルトロジックでは、バンドル(.js/.css)内の最初のファイルのファイル拡張子が使用されます。

また、Script/Styles Renderヘルパを追加すると、debug = true | falseに基づいて異なるトランスフォーム間を動的に切り替える必要がなくなります。ヘルパーはあなたのためにそれを世話する必要があります。どのバージョンの

+0

1つのパラメータで新しいBundle()を呼び出すことはできません。このための新しいソリューションはありますか? – Lucas

+1

最新バージョンはありますか? http://nuget.org/packages/Microsoft.AspNet.Web.Optimization –

+0

私は最新のものだと思ったが、Microsoft.Web.Optimizationを使っていた。説明をありがとう – Lucas

7

ないこれに対する直接の回答が、ちょうどfurtureでこの遭遇し、誰にそれを指摘して...それは同様に設定を介して行うことができ、(https://stackoverflow.com/a/12605451/6486を参照)

<system.web> 
    <compilation debug="true" /> 
    <!-- Lines removed for clarity. --> 
</system.web> 
+0

これは私のために働く。 – gingerbreadboy