Próbuję użyć nowej funkcji sprzedaży pakietowej w projekcie, który niedawno przekonwertowałem z MVC 3 na MVC 4 w wersji beta. Wymaga linii kodu w global.asax BundleTable.Bundles.RegisterTemplateBundles();
, która wymaga using System.Web.Optimization;
na górze.
Kiedy to robię, otrzymuję czerwone, zawijasowe linie, które mówią: „Czy brakuje odniesienia do zestawu?” Kiedy próbuję dodać odniesienie i klikam kartę .NET w oknie dialogowym, sortuję od AZ, nie widzę System.Web.Optimization
.
Jak dodać to odniesienie do mojego projektu?
asp.net-mvc-4
namespaces
asp.net-optimization
Ian Davis
źródło
źródło
System.Web.Optimization
węzeł do moich referencji.Odpowiedzi:
Dostępna jest aktualizacja 1.1.x, przeczytaj informacje o wersji: https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization
Pakiet Microsoft.Web.Optimization jest już nieaktualny. W programie ASP.NET (MVC) 4 i nowszych należy zainstalować program Microsoft ASP.NET Web Optimization Framework:
Zainstaluj pakiet z nuget :
Utwórz i skonfiguruj pakiety w App_Start \ BundleConfig.cs:
Wywołaj funkcję RegisterBundles () z Application_Start () w pliku global.asax.cs:
W pliku view.cshtml uwzględnij przestrzeń nazw optymalizacji i wyrenderuj pakiety:
Więcej informacji można znaleźć na stronie http://www.asp.net/mvc/overview/performance/bundling-and-minification
źródło
W ostatecznej wersji ASP.Net MVC 4 podejście wygląda następująco:
Zainstaluj Microsoft.AspNet.Web.Optimization przez nuget (ponieważ nie jest instalowany przez framework)
Utwórz pakiet w Global.asax Application_Start:
Dodaj przestrzeń nazw „System.Web.Optimization” do pliku web.config „Widoki”:
W view.cshtml dodaj dołączenie do pakietu utworzonego w ostatnim kroku:
W trybie debugowania wszystkie pliki skryptów w katalogu będą renderowane osobno; w trybie zwolnienia zostaną one powiązane i zminimalizowane.
źródło
".js"
plików. Wewnątrzpublic static void RegisterBundles(BundleCollection bundles) { ... }
powinieneś być w stanie zrobić coś takiego,bundles.Add(new StyleBundle("~/CssBundle"));
a to przechwyciłoby wszystkie pliki CSS w twoimCssBundle
folderze. Nie chceszScriptBundle
tak jak w przykładzie dla plików CSS.Zaktualizuj (ponownie zainstaluj) pakiet z nuget, możesz użyć polecenia:
update-Package Microsoft.AspNet.Web.Optimization -reinstall
źródło
W moim przypadku był to problem z tfs, ponieważ tfs wykluczają pliki binarne, więc Nugget PM znajduje samorodek zainstalowany i nie aktualizuje biblioteki Jeśli masz podobny problem:
Uwaga: folder pakietu znajduje się na tym samym poziomie pliku yousolution.sln
źródło
Używanie programu nuget do odinstalowywania System.Web.Optimization w konsoli menedżera pakietów w następujący sposób:
Odinstaluj pakiet Microsoft.AspNet.Web.Optimization
Następnie ponowna instalacja za pomocą:
Zainstaluj pakiet Microsoft.AspNet.Web.Optimization
Może rozwiązać ten problem.
źródło
Zainstaluj go z NUGet przez Visual Studio Open Visual Studio 2010, wybierz Narzędzia-> Biblioteka Menedżer pakietów-> Konsola Menedżera pakietów
Otworzy to konsolę, wklej
i wejdź. i gotowe
źródło
ustawiony w Global.asax application_start (w trybie RELEASE itp.):
aby włączyć minimalizację i zmienić na false w trybie DEBUG, aby renderować wszystkie pliki skryptów i stylów osobno.
źródło
<compilation debug="true" />
jest ustawiony (co jest dość standardem podczas budowania wersji debugowania), optymalizacja nie jest przeprowadzana. Zwykle to ustawienie jest automatycznie usuwane w kompilacji wydania.BundleTable.EnableOptimizations
powinien być używany tylko do unieważnienia pliku web.config. Aby uzyskać więcej informacji: asp.net/mvc/tutorials/mvc-4/bundling-and-minification (wyszukaj „Controlling Bundling and Minification”)BundleTable.EnableOptimizations = false;
ponieważ w pliku BundleConfig.cs określasz wszystkie wstępnie zminimalizowane pliki i nie chcesz, aby dokonywał na nich kolejnej minimalizacji.