Saya mencoba menggunakan fitur bundling baru dalam proyek yang baru-baru ini saya konversi dari MVC 3 ke MVC 4 beta. Itu membutuhkan satu baris kode di global.asax BundleTable.Bundles.RegisterTemplateBundles();
,, yang memerlukan using System.Web.Optimization;
di atas.
Ketika saya melakukan ini, saya mendapatkan garis merah berlekuk yang mengatakan, "Apakah Anda kehilangan referensi perakitan?" Ketika saya mencoba dan menambahkan referensi, dan klik pada tab .NET di dialog, urutkan dari AZ, saya tidak melihat System.Web.Optimization
.
Bagaimana saya menambahkan referensi ini ke proyek saya?
asp.net-mvc-4
namespaces
asp.net-optimization
Ian Davis
sumber
sumber
System.Web.Optimization
simpul kembali ke Referensi saya.Jawaban:
Pembaruan
Versi 1.1.x tersedia, baca catatan rilis: https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization
Paket Microsoft.Web.Optimisasi sekarang sudah usang. Dengan ASP.NET (MVC) 4 dan lebih tinggi, Anda harus menginstal Microsoft ASP.NET Web Optimization Framework:
Instal paket dari nuget :
Buat dan konfigurasikan bundel di App_Start \ BundleConfig.cs:
Panggil fungsi RegisterBundles () dari Application_Start () di global.asax.cs Anda:
Di view.cshtml Anda, sertakan ruang nama Optimasi dan render bundel:
Lihat http://www.asp.net/mvc/overview/performance/bundling-and-minification untuk informasi lebih lanjut
sumber
Dengan versi final yang dirilis dari ASP.Net MVC 4 pendekatannya adalah sebagai berikut:
Instal Microsoft.AspNet.Web.Optimisasi via nuget (karena tidak diinstal oleh framework)
Buat bundel di Global.asax Application_Start:
Tambahkan namespace "System.Web.Optimization" ke web.config "Views":
Di view.cshtml Anda menambahkan sebuah menyertakan ke bundel yang dibuat pada langkah terakhir:
Dalam mode debug, semua file skrip di direktori Anda akan ditampilkan secara terpisah; dalam mode rilis mereka akan dibundel dan diperkecil.
sumber
".js"
file. Di dalampublic static void RegisterBundles(BundleCollection bundles) { ... }
Anda harus dapat melakukan sesuatu sepertibundles.Add(new StyleBundle("~/CssBundle"));
dan itu akan mengambil semua file CSS diCssBundle
folder Anda . Anda tidak inginScriptBundle
seperti di contoh untuk file CSS.Perbarui (instal ulang) paket dari nuget, Anda dapat menggunakan perintah:
update-Package Microsoft.AspNet.Web.Optimization -reinstall
sumber
Dalam kasus saya itu adalah masalah tfs, karena tfs mengecualikan binari, sehingga Nugget PM menemukan nugget terinstal dan tidak memperbarui perpustakaan Jika Anda memiliki masalah serupa:
NB: folder paket berada di level yang sama dengan file yousolution.sln
sumber
Menggunakan nuget untuk menghapus instalasi System.Web.Optimation di konsol manajer paket seperti ini:
Uninstall-Paket Microsoft.AspNet.Web.Optimization
Kemudian instal ulang menggunakan:
Instal-Paket Microsoft.AspNet.Web.Optimisasi
Dapat mengatasi masalah ini untuk Anda.
sumber
Instal dari NUGet melalui Visual Studio Buka Visual Studio 2010, pilih Alat-> Library Package Manager-> Package Manager Console
Ini akan membuka conslve, paste
dan masuk. dan kamu selesai
sumber
atur di Global.asax application_start (dalam mode RELEASE dll.):
untuk mengaktifkan minifikasi dan mengubah ke false dalam mode DEBUG untuk merender semua skrip dan file gaya satu per satu.
sumber
<compilation debug="true" />
diatur (yang cukup standar ketika membangun versi debug), tidak ada optimasi yang dilakukan. Biasanya pengaturan ini dihapus secara otomatis dalam rilis rilis.BundleTable.EnableOptimizations
seharusnya hanya digunakan untuk mengesampingkan web.config. Untuk info lebih lanjut: asp.net/mvc/tutorials/mvc-4/bundling-and-minification (cari "Mengontrol Bundling dan Minifikasi")BundleTable.EnableOptimizations = false;
karena dalam BundleConfig.cs Anda, Anda menentukan semua file pra-minified dan Anda tidak ingin itu melakukan minimalisasi lain pada mereka.