Visual Studio 2012 veya Visual Studio 2013'te eski bir MVC projesini nasıl açabilirim?


152

MVC 3 veya MVC 4'e yükseltmek istemediğim eski bir ASP.NET MVC 2 projem var. Windows 8, Visual Studio 2012 ve Visual Studio 2013 çalıştıran yeni bir makine üzerinde çalışıyorum. MVC'yi açmaya çalıştığımda VS 2012 veya VS 2013'te 2 proje Hatayı alıyorum:

Bu proje, şu anki Visual Studio sürümü ile uyumsuz

Proje kaldırılır ve Solution Explorer'da gri renkte görünür. Visual Studio'nun başka bir kopyasını yüklemek istemiyorum. Eski bir MVC projesini Visual Studio'nun yeni bir sürümünde nasıl açabilirim?


Biliyorsan neden bu soruyu sordun?
Brian White

30
@BrianWhite Bu sabah bu sorunla karşılaştığımda hızlı bir Google araması yaptım ve hiçbir şey bulamadım. VS proje dosyalarının nasıl çalıştığına aşina olduğumdan, sebebi ve potansiyel bir çözümü tahmin ettim. Çözümün işe yaradığını doğruladıktan sonra bu bilgiyi paylaşmak istedim. Jeff'in yönergelerine dayanarak kendi sorularınızı sormak ve cevaplamak sorun değildir .
ahsteele

1
Teşekkürler, bunu bilmiyordum. Göndermediğim birkaç şey var çünkü burada arayan kimseyi görmedim.
Brian White

8
ahsteele, çözümü gönderdiğin için teşekkürler. Bir çözüm bulunduğunda kişinin kendi sorularını cevaplamak topluma bilgi katar.
pomarc

Yanıtlar:


291

Visual Studio 2012 veya Visual Studio 2013'te desteklenmeyen bir MVC projesi açmak aslında iki adımla başarmak oldukça kolaydır. Aslında, bytebender'ın yorumunun da belirttiği gibi , bu adımların MVC 1 projeleri için geçerli olması ve bu projeler için çalışması gerekir . Ancak, onları test etmedim ve bu yüzden aslında işe yaradıklarını garanti edemem.

Daha önce yapmadığınız varsayılarak birinci adım MVC 1 , MVC 2 veya MVC 3'ü indirip yüklemektir (yüklemeye başlamadan önce Visual Studio'yu kapatın).

Uygun MVC lezzeti yükledikten sonra proje VS 2012 yılında hala yüklenmez. Bunun nedeni ASP.NET MVC projelerinin Web Uygulaması proje türünün bir proje alt türü olmasıdır. Bu, projenin Visual Studio'da kullanıldığında ek eklentileri ve özellikleri olduğu anlamına gelir.

Visual Studio 2012 ve Visual Studio 2013, ASP.NET MVC ve diğer proje türleriyle geriye dönük uyumluluklarıyla sınırlıdır. Ne yazık ki, eski MVC bitlerinin yüklenmesi bunu değiştirmedi.Visual Studio 2012, ASP.NET MVC 3 ve 4 proje lezzetleriyle uyumludur . Visual Studio 2013, MVC 4 ve MVC 5 ile uyumludur .

Projenin yüklenmesini sağlamak için proje dosyasını değiştirmeniz gerekir. Bunu yapmak için yüklenmemiş projeye sağ tıklayın ve Düzenle'yi seçin. Proje dosyasını XML metin dosyası olarak açar. Bunun ProjectTypeGuidsgibi görünmesi gereken düğümü bulun :

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

Uygun Proje Rehberini listeden kaldırın:

  • ASP.NET MVC 1: {603c0e0b-db56-11dc-be95-000d561079b0}
  • ASP.NET MVC 2: {F85E285D-A4E0-4152-9332-AB1D724D3325} (yukarıdaki örnekte gösterilmiştir)
  • ASP.NET MVC 3: {E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • ASP.NET MVC 4: {E3E379DF-F4C6-4180-9B81-6769533ABE47}

Uygun GUID kaldırıldığında buna ProjectTypeGuidsbenzer görünmelidir:

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

Dosyayı kaydedin ve Visual Studio proje dosya düzenleyicisini kapatın. Projeyi sağ tıklayın ve yeniden yükle'yi seçin. Proje yeniden yüklenmezse kapatın ve Visual Studio'yu yeniden açın. Artık Visual Studio'nun yeni sürümünde eski ASP.NET MVC projenizle çalışabilmeniz gerekir.

Dikkat edilmesi gereken önemli bir şey, bu değişikliklerden sonra Visual Studio'nun bir ASP.NET MVC projesi olduğunun farkında olmamasıdır; bu nedenle "Denetleyici Ekle, Görüntüle vb." gibi projeye özgü özellikler menülerde bulunmayacak.


11
Bu MVC 1 için de geçerlidir. Proje dosyasını düzenledikten sonra yeniden yükleyemedim. Görsel stüdyosu kapatıp yeniden açmak zorunda kaldım ve ardından MVC 1 projesini yükleyebildim. Teşekkürler! +1
bytebender

1
mükemmel! benim için küçük bir ek ile çalışır ... benim .cspproj ekstra bir proje vardıTypeGuid: {F85E285D-A4E0-4152-9332-AB1D724D3325}; kaldırılması gerekiyordu.
Kevin Won

2
@JookyDFW geçiş yardımcı programı ile ilgili sorun , bir geçiş yardımcı programı olmasıdır . Bu proje için soruda sayılmayan nedenlerden ötürü MVC 2'den yükseltme yapamadım. Proje geliştirilemese de yine de üzerinde çalışmam gerekiyordu. Proje dosyasını belirtildiği gibi değiştirmek, VS 2012'de bir MVC 2 projesi ile çalışmanın en iyi (yalnızca?)
Yoludur

3
@RyanShripat benim deneyimim değildi. ASP.NET MVC'nin eski sürümlerinin yüklenmesi gerekir, ancak VS 2010'un yukarıda belirtilenleri etkilemez.
ahsteele

2
@Nanu yorum için teşekkür ederim, ne demek istediğimi netleştirmek için: " Unutulmaması gereken önemli bir şey, bu değişikliklerden sonra Visual Studio bunun bir ASP.NET MVC projesi olduğunu farkında değildir; bu nedenle projeye özgü özellikler "Denetleyici Ekle, Görünüm vb. " gibi menülerde bulunmayacaktır. "
ahsteele

4

@ Ahsteele yaklaşımını kullandım (teşekkürler ve 2x + 1s!), Ancak bir hata daha vardı: -

.csproj: hata: İşlem tamamlanamadı. Geçersiz sınıf dizesi

Bunun gerçek nedeni için herhangi bir alıntı bulamadım, ancak VS2012RTM'nin projeyi değiştirerek başarıyla yüklemesini sağlayabildim <ProjectGuid>. (Bunun nasıl olduğu hakkında hiçbir fikrim yok - büyük bir çözümün parçası ve VS08, VS10, VS11 Beta ve VS2012RC zaman içinde .csprojve hepsini yükseltti .sln.


1

VS2017'de çözüm sadece böyle yapmaktır <ProjectTypeGuids></ProjectTypeGuids>.

Bayanlar ve baylar arasında boşluk yok, aksi takdirde 48 saatinizi boşa harcar.

Saygılarımızla

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.