Bagaimana cara membuka proyek MVC lama di Visual Studio 2012 atau Visual Studio 2013?

152

Saya memiliki proyek ASP.NET MVC 2 lama yang tidak ingin saya mutakhirkan ke MVC 3 atau MVC 4. Saya sedang mengerjakan mesin baru yang menjalankan Windows 8, Visual Studio 2012 dan Visual Studio 2013. Ketika saya mencoba membuka MVC 2 proyek di VS 2012 atau VS 2013 Saya menerima kesalahan:

Proyek ini tidak kompatibel dengan edisi Visual Studio saat ini

Proyek ini kemudian dibongkar dan berwarna abu-abu di Solution Explorer. Saya tidak ingin menginstal salinan Visual Studio lain. Bagaimana saya bisa membuka proyek MVC lama di Visual Studio versi baru?

ahsteele
sumber
Mengapa Anda menanyakan pertanyaan ini jika Anda tahu?
Brian White
30
@BrianWhite Ketika saya mengalami masalah ini pagi ini saya melakukan pencarian Google cepat dan tidak menemukan apa-apa. Karena saya terbiasa dengan cara kerja file proyek VS, saya memiliki dugaan tentang penyebab dan solusi potensial. Setelah saya memverifikasi bahwa solusi berhasil, saya ingin berbagi pengetahuan itu. Berdasarkan pedoman Jeff, boleh saja bertanya dan menjawab pertanyaan Anda sendiri .
ahsteele
1
Terima kasih, saya tidak tahu itu. Ada beberapa hal yang belum saya posting karena saya tidak melihat orang mencari di sini.
Brian White
8
ahsteele, terima kasih telah mengirimkan solusinya. Menjawab pertanyaan sendiri, ketika solusi ditemukan, menambah pengetahuan bagi komunitas.
pomarc

Jawaban:

291

Membuka proyek MVC yang tidak didukung dalam Visual Studio 2012 atau Visual Studio 2013 sebenarnya cukup mudah dilakukan dengan dua langkah. Bahkan, seperti yang ditunjukkan oleh komentar bytebender , langkah - langkah yang sama ini harus berlaku untuk dan bekerja untuk proyek MVC 1. Namun, saya belum mengujinya dan karena itu tidak dapat menjamin bahwa mereka benar-benar berfungsi.

Dengan anggapan bahwa Anda belum melakukannya maka langkah pertama adalah mengunduh dan menginstal MVC 1 , MVC 2 atau MVC 3 (tutup Visual Studio sebelum memulai instalasi).

Setelah Anda memiliki rasa yang sesuai dari MVC diinstal proyek tidak akan memuat di VS 2012. Ini karena proyek ASP.NET MVC adalah subtipe proyek dari jenis proyek Aplikasi Web. Ini berarti bahwa proyek memiliki tambahan tambahan dan fitur yang tersedia untuk itu ketika digunakan dalam Visual Studio.

Visual Studio 2012 dan Visual Studio 2013 terbatas dalam kompatibilitas ke belakang dengan ASP.NET MVC dan jenis proyek lainnya. Sayangnya, menginstal bit MVC lama tidak mengubah itu. Visual Studio 2012 kompatibel dengan cita rasa ASP.NET MVC 3 dan 4 proyek. Visual Studio 2013 kompatibel dengan MVC 4 dan MVC 5.

Untuk mendapatkan proyek yang akan dimuat, Anda harus memodifikasi file proyek. Untuk melakukannya klik kanan pada proyek yang dibongkar dan pilih Edit. Yang akan membuka file proyek sebagai file teks XML. Temukan ProjectTypeGuidssimpul yang seharusnya terlihat seperti ini:

<ProjectTypeGuids>
    {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

Hapus Panduan Proyek yang sesuai dari daftar:

  • ASP.NET MVC 1: {603c0e0b-db56-11dc-be95-000d561079b0}
  • ASP.NET MVC 2: {F85E285D-A4E0-4152-9332-AB1D724D3325} (ditunjukkan dalam contoh di atas)
  • ASP.NET MVC 3: {E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • ASP.NET MVC 4: {E3E379DF-F4C6-4180-9B81-6769533ABE47}

Dengan GUID yang tepat dihapus, ProjectTypeGuidsakan terlihat seperti ini:

<ProjectTypeGuids>
    {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

Simpan file dan tutup editor file proyek Visual Studio. Klik kanan proyek dan pilih muat ulang. Jika proyek tidak memuat ulang tutup dan buka kembali Visual Studio. Anda sekarang harus dapat bekerja dengan proyek ASP.NET MVC lama Anda di Visual Studio versi baru Anda.

Satu hal penting yang perlu diperhatikan adalah bahwa setelah modifikasi ini Visual Studio tidak menyadari bahwa ini adalah proyek ASP.NET MVC; Oleh karena itu fitur spesifik proyek seperti "Tambah Kontrol, Lihat dll." tidak akan ada dalam menu.

ahsteele
sumber
11
Ini berfungsi untuk MVC 1 juga. Saya tidak dapat memuat ulang setelah mengedit file proyek. Saya harus menutup dan membuka kembali studio visual dan kemudian dapat memuat proyek MVC 1. Terima kasih! +1
bytebender
1
luar biasa! berfungsi untuk saya dengan satu tambahan kecil ... di .cspproj saya, saya memiliki projectTypeGuid tambahan: {F85E285D-A4E0-4152-9332-AB1D724D3325}; yang perlu dihapus.
Kevin Won
2
@JookyDFW masalah dengan utilitas migrasi adalah utilitas migrasi . Untuk alasan yang tidak disebutkan dalam pertanyaan untuk proyek khusus ini, saya tidak dapat memutakhirkan dari MVC 2. Meskipun proyek tidak dapat ditingkatkan, saya masih perlu mengerjakannya. Memodifikasi file proyek sebagaimana diuraikan adalah cara terbaik (hanya?) Untuk bekerja dengan proyek MVC 2 di VS 2012.
ahsteele
3
@RyanShripat itu bukan pengalaman saya sama sekali. Versi ASP.NET MVC yang lebih lama harus diinstal tetapi VS 2010 tidak mempengaruhi hal di atas.
ahsteele
2
@Nanu terima kasih atas komentarnya, untuk menjadi jelas itulah yang saya maksud dengan: " Satu hal penting yang perlu diperhatikan adalah bahwa setelah modifikasi ini Visual Studio tidak menyadari bahwa ini adalah proyek ASP.NET MVC; oleh karena itu fitur spesifik proyek seperti "Add Controller, View etc." tidak akan ada di menu. "
ahsteele
4

Saya menggunakan pendekatan @ ahsteele (terima kasih dan 2x + 1!), Tetapi mengalami satu kesalahan lebih lanjut: -

.csproj: error: Operasi tidak dapat diselesaikan. String kelas tidak valid

Saya tidak dapat menemukan kutipan untuk penyebab sebenarnya, tetapi saya bisa mendapatkan VS2012RTM untuk memuat proyek dengan sukses dengan mengubah <ProjectGuid>. (Tidak tahu bagaimana ini terjadi - bagian dari solusi besar dan VS08, VS10, VS11 Beta dan VS2012RC semuanya telah ditingkatkan .csprojdan .slnseiring waktu.

Ruben Bartelink
sumber
1

Dalam VS2017 solusinya adalah dengan membuatnya seperti <ProjectTypeGuids></ProjectTypeGuids>itu.

Tidak ada spasi di antara wanita dan pria, jika tidak maka akan menghabiskan 48 jam waktu Anda.

Salam

WickStargazer
sumber