Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Rick Anderson
ASP.NET MVC 5 dan Web API 2 menghadirkan sejumlah fitur baru, termasuk perutean atribut, filter autentikasi, dan banyak lagi. Lihat https://www.asp.net/vnext untuk detail selengkapnya.
Panduan ini akan memandu Anda dengan langkah-langkah yang diperlukan untuk meningkatkan aplikasi Anda ke versi terbaru.
Catatan
Silakan lihat ASP.NET dan Alat Web untuk Catatan Rilis Visual Studio 2013 untuk informasi tentang melanggar perubahan dari MVC 4 dan Web API ke versi berikutnya.
Artikel ini ditulis oleh Youngjune Hong dan Rick Anderson ( @RickAndMSFT )
Langkah-langkah Peningkatan
Cadangkan proyek Anda. Panduan ini akan mengharuskan Anda untuk membuat perubahan pada file proyek, konfigurasi paket, dan file web.config Anda.
Untuk memutakhirkan dari Web API ke Web API 2, di global.asax, ubah:
WebApiConfig.Register(GlobalConfiguration.Configuration);
ke
GlobalConfiguration.Configure(WebApiConfig.Register);
Pastikan semua paket yang digunakan proyek Anda kompatibel dengan MVC 5 dan Web API 2. Tabel berikut menunjukkan paket terkait MVC 4 dan Web API daripada yang perlu diubah. Jika Anda memiliki paket yang bergantung pada salah satu paket yang tercantum di bawah ini, silakan hubungi penerbit untuk mendapatkan versi yang lebih baru yang kompatibel dengan MVC 5 dan Web API 2. Jika Anda memiliki kode sumber untuk paket tersebut, Anda harus mengkompilasi ulang dengan rakitan baru MVC 5 dan Web API 2.
Id Paket Versi lama Versi baru Microsoft.AspNet.Razor 2.0.x.x 3.0.0 Microsoft.AspNet.WebPages 2.0.x.x 3.0.0 Microsoft.AspNet.WebPages.WebData 2.0.x.x 3.0.0 Microsoft.AspNet.WebPages.OAuth 2.0.x.x 3.0.0 Microsoft.AspNet.Mvc 4.0.x.x 5.0.0 Microsoft.AspNet.Mvc.Facebook 4.0.x.x 5.0.0 Microsoft.AspNet.WebApi.Core 4.0.x.x 5.0.0 Microsoft.AspNet.WebApi.SelfHost 4.0.x.x 5.0.0 Microsoft.AspNet.WebApi.Client 4.0.x.x 5.0.0 Microsoft.AspNet.WebApi.OData 4.0.x.x 5.0.0 Microsoft.AspNet.WebApi 4.0.x.x 5.0.0 Microsoft.AspNet.WebApi.WebHost 4.0.x.x 5.0.0 Microsoft.AspNet.WebApi.Tracing 4.0.x.x 5.0.0 Microsoft.AspNet.WebApi.HelpPage 4.0.x.x 5.0.0 Microsoft.Net.Http 2.0.x. 2.2.x. Microsoft.Data.OData 5.2.x 5.6.x System.Spatial 5.2.x 5.6.x Microsoft.Data.Edm 5.2.x 5.6.x Microsoft.AspNet.Mvc.FixedDisplayModes <o:p></o:p> Dihapus Microsoft.AspNet.WebPages.Administration <o:p></o:p> Dihapus Microsoft-Web-Helpers <o:p></o:p> Microsoft.AspNet.WebHelpers Catatan
Microsoft-Web-Helpers telah diganti dengan Microsoft.AspNet.WebHelpers. Anda harus menghapus paket lama terlebih dahulu, lalu menginstal paket yang lebih baru.
Tidak ada kompatibilitas versi silang di antara paket ASP.NET utama. Misalnya, MVC 5 hanya kompatibel dengan Razor 3, dan bukan Razor 2.
Buka proyek Anda di Visual Studio.
Hapus salah satu paket ASP.NET NuGet berikut yang diinstal. Anda akan menghapusnya menggunakan Package Manager Console (PMC). Untuk membuka PMC, pilih menu Alat lalu pilih Manajer Paket NuGet, lalu pilih Konsol Manajer Paket. Proyek Anda mungkin tidak menyertakan semua ini.
Microsoft.AspNet.WebPages.Administration
Paket ini biasanya ditambahkan saat meningkatkan dari MVC 3 ke MVC 4. Untuk menghapusnya, jalankan perintah berikut di PMC:
Uninstall-Package -Id Microsoft.AspNet.WebPages.Administration
Microsoft-Web-Helpers
Paket ini telah diganti nama sebagaiMicrosoft.AspNet.WebHelpers
. Untuk menghapusnya, jalankan perintah berikut di PMC:
Uninstall-Package -Id Microsoft-Web-Helpers
Microsoft.AspNet.Mvc.FixedDisplayMode
Paket ini berisi pekerjaan untuk bug di MVC 4 yang telah diperbaiki di MVC 5. Untuk menghapusnya, jalankan perintah berikut di PMC:
Uninstall-Package -Id Microsoft.AspNet.Mvc.FixedDisplayModes
Tingkatkan semua paket NuGet ASP.NET menggunakan PMC. Di PMC, jalankan perintah berikut:
Update-Package
PerintahUpdate-Package
tanpa parameter apa pun akan memperbarui setiap paket. Anda dapat memperbarui paket satu per satu dengan menggunakan argumen ID. Untuk informasi selengkapnya tentang perintah pembaruan, jalankanget-help update-package
.
Memperbarui File web.config Aplikasi
Pastikan untuk membuat perubahan ini dalam file web.config aplikasi, bukan file web.config di folder Tampilan .
Temukan bagian <runtime>/<assemblyBinding>
, dan buat perubahan berikut:
Dalam elemen dengan atribut nama "System.Web.Mvc", ubah nomor versi dari "4.0.0.0" menjadi "5.0.0.0". (Dua perubahan dalam elemen tersebut.)
Dalam elemen dengan atribut nama "System.Web.Helpers" dan "System.Web.WebPages" ubah nomor versi dari "2.0.0.0" menjadi "3.0.0.0". Empat perubahan akan terjadi, dua di masing-masing elemen.
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <!--Two elements removed for Clarity --> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <!--WebGrease element removed for Clarity --> </assemblyBinding
Temukan bagian
<appSettings>
dan perbarui halaman web:version dari 2.0.0.0 ke 3.0.0.0 seperti yang ditunjukkan di bawah ini:<appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings>
Hapus tingkat kepercayaan apa pun selain Penuh. Contohnya:
<securityPolicy> <!--<trustLevel name="Medium" policyFile="web_mediumtrust.config"/>--> </securityPolicy>
Memperbarui file web.config di bawah folder Tampilan
Jika aplikasi Anda menggunakan area, Anda juga perlu memperbarui setiap file web.config di sub-folder Tampilan dari setiap folder Area.
Perbarui semua elemen yang berisi "System.Web.Mvc" dari versi "4.0.0.0" ke versi "5.0.0.0".
<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <!--Elements removed for Clarity.--> </namespaces> </pages> </system.web.webPages.razor>
--> <pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <controls> <add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> </pages> </system.web>
Perbarui semua elemen yang berisi "System.Web.WebPages.Razor" dari versi "2.0.0.0" ke versi"3.0.0.0". Jika bagian ini berisi "System.Web.WebPages", perbarui elemen-elemen tersebut dari versi "2.0.0.0" ke versi"3.0.0.0"
<configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections>
Jika Anda menghapus
Microsoft-Web-Helpers
paket NuGet di langkah sebelumnya, instalMicrosoft.AspNet.WebHelpers
dengan perintah berikut di PMC:
Install-Package -Id Microsoft.AspNet.WebHelpers
Jika aplikasi Anda menggunakan metode User.IsInRole(), tambahkan yang berikut ini ke file Web.config .
<system.webServer> <modules> <remove name="RoleManager" /> </modules> </system.webServer>
Langkah Terakhir
Bangun dan uji aplikasi.
Hapus GUID jenis proyek MVC 4 dari file proyek.
- Di Penjelajah Solusi, klik kanan nama proyek lalu pilih Bongkar Proyek.
- Klik kanan proyek dan pilih Edit ProjectName.csproj.
-
ProjectTypeGuids
Temukan elemen lalu hapus GUID proyek MVC 4,{E3E379DF-F4C6-4180-9B81-6769533ABE47}
. - Simpan dan tutup file proyek yang terbuka.
- Klik kanan proyek dan pilih Muat Ulang Proyek.