VS2012 Çözümünü VS2010'a Dönüştürme


127

VS 2012 ile VB projesinde çalışıyorum ve bittikten sonra kurulum projesi eklemeye çalışıyorum.

Bulamadım (çünkü Kurulum Projesi VS2010'dan sonra durduruldu) bu yüzden VS2010'a geçtim ancak sorun proje açılmayacak ve şu mesajı alıyorum:

Seçilen dosya bir çözüm dosyasıdır, ancak bu uygulamanın daha yeni bir sürümü tarafından oluşturulmuştur ve açılamaz.

Bu makaleyi denedim: http://www.codeproject.com/Tips/80953/Converting-VS2010-Solution-to-VS2008 ve 2012'den 2010'a dönüştürmeyi denedim ancak aynı mesaj görünüyor.


Neden tek bir kurulum projesi oluşturmak için VS2010'u kullanmıyorsunuz - hatırladığım kadarıyla projeleri dahil etmeniz gerekmiyor ve dosyaları kendi başınıza ekleyebiliyorsunuz
Carsten

tamam, bu fikir etrafında bir çalışma olabilir, derleme / dağıtımı hızlı hale getirmek için projeyle kurulumu her zaman aynı çözüme dahil ediyoruz
HokaHelal

1
Vs2010'da sp1'iniz var mı? 2012 proje / çözüm dosyalarını açabilmesi için hizmet paketine ihtiyacınız olduğunu düşünüyorum.
Georgi Stoyanov

Yanıtlar:


306

Ben de benzer bir sorunla karşılaştım. Googledim ama çözümü bulamadım. Bu yüzden kendi başıma denedim ve işte çözümüm.

Çözüm dosyanızı not defterinde açın. 2 değişiklik yap

  1. "Biçim Sürümü 12.00" ı "Biçim Sürümü 11.00" (tırnak işaretleri olmadan) ile değiştirin.
  2. "# Visual Studio 2012" yi "# Visual Studio 2010" ile değiştirin (tırnak işaretleri olmadan)

Umarım bu size de yardımcı olur ..........


3
Bunu yapmanın bir dezavantajı var mı? Gerçek olamayacak kadar kolay görünüyor.
kbeal2k

4
Benim için işe yaramadı, yine de uyumsuz olduğunu mu sürdürdü?
David

3
Bu ipucu için teşekkürler! Bir ASP.NET web api projesini düşürmek için bile çalışır. Sln'de Biçim Sürümü 12.00'ı Biçim Sürümü 11.00'a uyarlamaya ve csproj'da TargetFrameworkVersion öğesini 4.5> 4.0'dan ayarlamaya ek olarak; Web.config'deki httpRuntime öğesini kaldırmam ve web.config'deki derleme targetFramework özniteliğini 4.5> 4.0'dan ayarlamak zorunda kaldım
AardVark71

2
Fantastik, geriye dönük uyumluluğun olmadığına inanamıyorum.
Stephen Murby

1
VS2013'ü kullanarak bu tuzağa düştüm - Formatı tekrar 11'e değiştirdim ve VS2010'da her şey yolundaydı - teşekkürler!
Surfbutler

121

Sadece Bhavin'in mükemmel cevabını detaylandırmak için - çözüm dosyasını düzenlemek işe yarıyor, ancak VS2012 projenizde varsayılan .NET sürümü olarak .NET 4.5'i seçtiyseniz ve VS2010 ortamınız bunu yapmıyorsa, yine de uyumsuz hatayı (David'in bildirdiği gibi) alabilirsiniz. bunu destekleyin.

Bunu hızlı bir şekilde düzeltmek için, VS2012 .csproj dosyasını bir metin düzenleyicide açın ve TargetFrameworkVersion'ı 4,0'a (4,5'ten) değiştirin. VS2010, "düzenlenmiş" çözümü ve projeleri mutlu bir şekilde yükleyecektir.

Ayrıca, .NET 4.0 ortamında çalıştırılmasına izin vermek için benzer bir şekilde .NET 4.5'e başvuran app.config dosyalarını düzenlemeniz gerekir.


5
Bhavin'in cevabı ile birlikte bu mükemmel çalıştı. İkinize de teşekkürler.
desaivv

2
Bu ipucu için teşekkürler! Bir ASP.NET web api projesini düşürmek için bile çalışır. Sln'de Biçim Sürümü 12.00'ı Biçim Sürümü 11.00'a uyarlamaya ve csproj'da TargetFrameworkVersion öğesini 4.5> 4.0'dan ayarlamaya ek olarak; Web.config'deki httpRuntime öğesini kaldırmam ve 4.5> 4.0'dan web.config'deki derleme targetFramework özniteliğini ayarlamam gerekiyordu
AardVark71

Ek olarak, benim yaptığım gibi, .vcproj dosyalarınızı gözden geçirmeniz ve platform araç setini v110'dan v100'e değiştirmeniz gerekebilir.
Xyon

2

Benzer bir sorun yaşadım ve yukarıdaki çözümlerden hiçbiri işe yaramadı, bu yüzden her zaman çalışan eski bir beklemeye gittim:

  1. Projeyi içeren klasörü yeniden adlandırın
  2. 2010 ile aynı isimde yepyeni bir proje yapın
  3. İki klasörü birbirinden ayırın ve->
  4. Tüm kaynak dosyaları doğrudan kopyalayın
  5. Bin / hata ayıklama / bırakma vb. Yoksay
  6. .Csproj dosyasını farklılaştırın ve ilgili tüm satırları kopyalayın.
  7. .Sln dosyasında yalnızca bir proje varsa, onu yoksayın. Karmaşıksa, o zaman da farklılaştırın.

Bu, 10 dakika harcadıysanız ve alamıyorsanız, neredeyse her zaman işe yarar.

Eski sürümlerle (2008, 2005) benzer sorunlar için genellikle .csproj içindeki sürümü değiştirip .sln'deki sürümü değiştirerek veya atarak kurtulabileceğinizi unutmayın, ancak bu 2013 için işe yaramıyor gibi görünmektedir. .


2

en basit çözüm ..... web sitenizi vs2013'te açın ve Debug-> WebsiteProperties'e (son seçenek) gidin, yeni bir pencere açılacaktır ..

bu pencerede "Oluştur" seçeneğine gidin ve .net çerçeve sürümünü 4.5'ten 4.0'a değiştirin ..... ardından Tamam'ı seçin. [not: bu adım yalnızca projenizin vs2013 ile bağımlılıkları yoksa işe yarar ...]

Şimdi web sitenizi vs2010'da açın


1

Çözümü değil proje dosyasını açın. Proje, Sihirbaz tarafından dönüştürülecek ve dönüştürüldükten sonra, projeyi oluşturduğunuzda, VS2010 olarak yeni bir Çözüm üretilecektir.


1

VS2010 çözümü, VS2012 tarafından desteklenmektedir. VS2012 çözümü yalnızca VS2010 -> tek yönlü yükseltme tarafından desteklenmez. VS2012, kurulum projelerini desteklemez. VS2010 / VS2012 uyumluluğu hakkında daha fazla bilgiyi burada bulabilirsiniz: http://msdn.microsoft.com/en-us/library/hh266747(v=vs.110).aspx


1
Bu belgeyi okumak, ikisi arasında gayet iyi çalışacak şeyler olduğunu söylüyor - yani VS2012'de bir proje / çözüm oluşturabilir ve bunu VS2010'da sorunsuz bir şekilde açabilirsiniz. Bununla birlikte, belge, 2012'de kullanılırsa 2010'da açmanıza izin vermeyecek şeyler olduğunu belirtiyor. Stackoverflow.com/questions/10902865/… başka bir iyi ve basit cevaptır.
brazilianldsjaguar

Dikkatlice okursanız, küçük bir fark görmelisiniz: VS2010'da oluşturulan projeler VS2012'de çalışır, başka bir şekilde değil. "... Visual Studio 2010 SP1'de oluşturulmuş bir projeyi açabilirsiniz ..."
Piotr Lewandowski

0

Benim için çalışan basit çözüm.

  1. Windows için Vim editörünü kurun.
  2. Vim düzenleyiciyi kullanarak VS 2012 proje çözümünü açın ve Visual studio çözümü 10'u hedefleyen sürümü değiştirin.
  3. Visual studio 2010 ile çözümü açın .. ve işinize devam edin;)

Neden sadece not defteri değil de Vim?
Zac
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.