Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Mendapat Ralat Penghantaran Semasa Menaik taraf Aplikasi ASP.NET MVC Saya daripada Versi 4 hingga 5?

Mengapa Saya Mendapat Ralat Penghantaran Semasa Menaik taraf Aplikasi ASP.NET MVC Saya daripada Versi 4 hingga 5?

Patricia Arquette
Patricia Arquetteasal
2025-01-04 03:07:42410semak imbas

Why Am I Getting a Casting Error When Upgrading My ASP.NET MVC Application from Version 4 to 5?

Ralat Pelik Menaik Taraf ASP.NET MVC daripada 4 kepada 5

Apabila menaik taraf ASP.NET MVC daripada versi 4 kepada versi 5, ralat mungkin muncul terhasil daripada operasi pemutus antara dua versi berbeza bagi System.Web.WebPages.Razor.Configuration.HostSection kelas. Memahami punca dan mengenal pasti penyelesaian kepada masalah ini adalah penting.

Punca Ralat

Selepas menyemak fail projek dengan teliti dan memastikan kesemuanya dikemas kini kepada MVC 5, isu itu berterusan . Ini menunjukkan bahawa masalah mungkin bukan dalam penyelesaian Visual Studio.

Mengikut mesej ralat, operasi penghantaran gagal kerana:

  • Jenis A: Berasal daripada versi lama pemasangan (System.Web.WebPages.Razor, Version=1.0.0.0), yang terdapat dalam Global Assembly Cache (GAC).
  • Jenis B: Berasal daripada versi pemasangan yang lebih baharu (System.Web.WebPages.Razor, Version=3.0.0.0) yang telah dirujuk berjaya dalam fail projek.

Cara Mencari Asal Usul Lama DLL

Visual Studio mungkin tidak sentiasa membuat pilihan yang tepat semasa peningkatan pergantungan. Oleh itu, adalah penting untuk memeriksa fail projek (.csproj) secara manual untuk mengesahkan rujukan. Apabila menaik taraf daripada MVC 4 kepada MVC 5, ada kemungkinan satu atau lebih fail projek masih mengandungi rujukan kepada versi lama System.Web.WebPages.Razor.

Langkah-Langkah untuk Mengemas kini Rujukan

  1. Nyah muat projek dengan mengklik kanan pada nodnya dalam Solution Explorer dan memilih "Unload Projek."
  2. Klik kanan nod projek sekali lagi dan pilih "Edit .csproj."
  3. Cari semua rujukan kepada System.Web.WebPages.Razor dalam fail.
  4. Kemas kini versi dan HintPath dengan sewajarnya seperti yang ditunjukkan di bawah:

Rujukan Lama:

<Reference Include="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
    <Private>True</Private>        
    <HintPath>..\packages\Microsoft.AspNet.WebPages.1.0.20105.408\lib\net40\System.Web.WebPages.Razor.dll</HintPath>
</Reference>

Rujukan Kemas Kini:

<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <Private>True</Private>
  <HintPath>..\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
</Reference>

Langkah-langkah ini harus diulang untuk semua projek bergantung dalam penyelesaian.

Mencegah Masa Depan Kejadian

Untuk mengelakkan isu yang serupa pada masa hadapan, adalah disyorkan untuk menyemak fail projek dengan teliti dan memastikan semua rujukan dikemas kini dengan betul semasa menaik taraf kebergantungan. Selain itu, adalah berfaedah untuk menyemak fail web.config dan /Views/web.config untuk memastikan fail tersebut tidak merujuk kepada versi pemasangan yang sudah lapuk.

Dalam kes yang jarang berlaku, tiada penyelesaian di atas menyelesaikan masalah masalah, ada kemungkinan bahawa masalahnya terletak di luar penyelesaian, berpotensi dalam pustaka pihak ketiga yang mungkin merujuk versi lama fail. Dalam kes sedemikian, mendapatkan versi DLL yang dikemas kini adalah perlu.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Penghantaran Semasa Menaik taraf Aplikasi ASP.NET MVC Saya daripada Versi 4 hingga 5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn