Visual Studio 2012, Visual Studio 2010 ile yan yana kurulabilir mi?


103

Aynı Windows örneğine yan yana yüklenirse Visual Studio 2012 .NET 4 ve / veya Visual Studio 2010'a müdahale eder / bunları bozar mı?


1
evet, ikisi de aynı anda çalışıyor. Denedim.
Eric Yin

3
Visual Studio yan yana kurulabilir, ancak VS 2012'nin .NET 4.5 ile birlikte geldiğini ve bunun .NET 4.0'ın üzerine yazdığını unutmayın. Hala .NET 4.0 makineleri için geliştirmeniz gerekmedikçe sorun değil.
Vaccano

4
Hala .NET 4.0 makineleri için geliştirme yapabilirsiniz. NET 4.0 uygulamanızı VS2012 makinenizde test ederken, .NET 4.5'i hiç yüklemeyen bir müşteriden farklı bir .NET sürümünü test edeceğinizi bilmelisiniz. Bu yüzden, müşterinizin kullanacağı gibi bir makinede test edin ve iyi olacaksınız.
John Saunders

ahhhh, yararlı bir test ortamı sağlayan bir müşteri lüksü!
Bunda

11
.NET 4.5'in .NET 4.0 ile tamamen uyumlu olduğunu düşünmek yanlıştır, değildir ve aslında bizim durumumuzda çözümlerimizden birkaçını bozmuştur.
Stefan Z Camilleri

Yanıtlar:


32

Reigo'nun dediği gibi, evet. Reigo'nun sağladığı bilgileri ve daha fazla ayrıntıyı içeren resmi Microsoft sayfasının bağlantısı: http://msdn.microsoft.com/en-us/library/ms246609%28v=VS.110%29.aspx


36
Yan tarafa "kurulabilir", yani yükleyicinin başarıyla çalışacağı anlamına gelir. Ancak, Visual Studio, .NET 4.5'i kaldırmak, .NET 4.0 çerçevenizi onarmak (4.5 beta yüklemesi tarafından doğrudan değiştirilir) ve SQL Server 2012 araçlarının bolluğunu kaldırmak için iki gün harcamak istemiyorsanız bunu yapmamalısınız. tek tek. Daha önce çalışan 4.0 kodunuz, yalnızca bir yorum içeren bir satırda "Nesne Referansı" hatasıyla patlamaya başlar.
mclark1129

8
.Net 4.0 için geliştirmeye devam etmeyi planlıyorsanız bu çok tehlikelidir. Bunun nedeni, geliştirme makinenizin .net 4.5 ikili dosyalarını kullanacak olmasıdır (çünkü .net 4.5 yerinde bir yükseltmedir). Bu ikili dosyalar, .net 4.0 hedeflemede hata ayıklarken sizden "gizlenecek" hata düzeltmelerine sahiptir. Ancak, yalnızca .net 4.0 (yani Windows xp) çalıştıran bir makineye dağıtım yaptığınızda, bu hatalar kullanıcınız için düzeltilmez . Daha fazla ayrıntı için bu
gönderiye

2
Sanal bir makinede deneyin. Mike C'nin tarif ettiği sorunları doğrulayabilirim. VS2012'nin denemenin güvenli olacağını varsaydım. O kadar çok can sıkıcı sorunla karşılaştım ki, makineme güvenmeyip Windows'u yeniden yükledim.
kenchilada

2
Bu sorunlar VS 2012 RTM ile hala var mı?
Tim Friesen

1
@TimFriesen - Açıkladığım sorun hala RTM'de. Microsoft'un .NET 4.5 için benimsediği "yerinde" yükseltme planındaki bir tasarım kusurudur.
Vaccano

30

.Net 4.5 sürümü, yerinde yükseltmedir.

Bu , .net 4.0 için ikili dosyaların .net 4.5 için ikili dosyalar tarafından DEĞİŞTİRİLECEĞİ anlamına gelir .

Microsoft, bir "Hedef .net 4.0" özelliği oluşturarak bunun neden olduğu sorunları azaltmaya çalıştı. Ancak bu, önceki .net sürümlerini (.net 2.0'dan beri yan yana olan) hedeflemekten çok farklıdır.

Yerinde yükseltme olduğu için, "Hedef .net 4.0" onu gerçekten hedefleyemez. Yapabilecekleri en iyi şey, bazı "özellikleri" manuel olarak kaldırmaya çalışmaktır. Bunu yaptılar (Scott Hanselman'ın bunu kapsayan bir blog yazısı vardı ).

Ancak bunun sizi gerçekten .net 4.0 kullandığınızı düşündürmesine izin vermeyin. .Net 4.5 ile düzeltilen tüm hatalar, .net 4.0 kullanıcılarınız için değil, geliştirme makinenizde düzeltilecektir.

Dolayısıyla, ".net 4.0'ı hedefleyen" bir uygulama geliştiriyorsanız ve .net 4.5 yüklediyseniz, risk altındasınız demektir. Yanlışlıkla düzeltilmiş bir hata kullanırsanız, hata ayıklama sırasında sizin için bozulmayacaktır.

Uygulamanızı yalnızca .net 4.0 (yani Windows xp) çalıştıran bir makineye dağıttığınızda, bu hatalar kullanıcınız için düzeltilmez .

Tüm amaç ve amaçlar için, bu düzeltilen hatalar artık "Gizli Hatalar" dır (hala .net 4.0'ı hedeflemesi gereken geliştiriciler için.

En iyi yanı, VS 2010 veya VS 2012 kullanmanızın önemli olmamasıdır. .Net 4.5 kurulduktan sonra hatalar gizlenir.

Daha fazla ayrıntı için bu gönderiye bakın: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a/


Üzgünüm ama bu sorunun ana noktasını saklıyor. Sorun yalnızca, uygulamanızın ne zaman çalıştığını size söylemesi için geliştirme makinenizde yaptığınız testlere bağlıysanız ortaya çıkar. Müşterilerinizin kullanacağı ortamda test yapabiliyorsanız (ve çoğu geliştiricinin bu konumda olduğunu düşünüyorum), o zaman bu probleminiz yok demektir. Sanal makine dahil test edilecek ikinci bir makineniz varsa, bu bir problem değildir.
John Saunders

4
@JohnSaunders - Hedef platformumuzda test yapan eksiksiz bir QA departmanımız var. Ancak birçok çalışma, farklı test türlerinin farklı türdeki hataları yakaladığını göstermiştir. Hata ayıklama sırasında aradığım şeyler, QA ekibimin bulacağı hata düzeyiyle aynı değil. Yine, otomatik testlerim hata ayıklama sırasında fark edeceğim her şeyi fark etmeyecek. Ve son olarak, masrafları $$$ düzeltemeyeceğiniz bir hataya bağlı bir özellik yazmak. Hata bulunduğunda, geliştirme makinemden ne kadar uzaksa, maliyeti o kadar artar. (Özellikle özelliği "bitirdiysem".)
Vaccano

"Sorun yalnızca, uygulamanızın ne zaman çalıştığını size söylemesi için geliştirme makinenizdeki testlerinize güveniyorsanız ortaya çıkar" - Kodunuzu geliştirme makinenizde test etmediğinizi mi ima ediyorsunuz? -- Bu gerçek bir sorun. Özellikle bunu bilmeyenler için. (Ve Microsoft bunu kamuya açıklamayacağından, pek çok geliştirici var.)
Vaccano

Geliştirme makinemde gerçekleştirdiğim testler kodumun çalışıp çalışmadığını belirlemez. Sadece QA departmanının hatalarımı ilk beş dakika içinde bulup bulmayacağını belirlerler. Utanç duygusunu azaltmak için kendi makinemde test yapıyorum. Kodumun müşterilere gönderilip gönderilmeyeceğini belirleyen, yapılarda otomatikleştirilmiş birim testleri ve QA tarafından yapılan gerçek testlerdir. Bu testler, müşterilerinki gibi bir ortamdaki testleri içerecektir. Bu durumda, buna Windows XP ve .NET 4.0 dahildir.
John Saunders

Üzgünüm ama bir QA departmanınız varsa, o zaman probleminizi hiç görmüyorum. NET 4.5 tarafından düzeltilen o kadar çok .NET 4.0 hatası olduğunu hayal edemiyorum, bu hatalara bağlı olarak kod yazarsanız size çok pahalıya mal olur. Bu sorunu yaşayacağınızı düşünüyorsanız, Windows XP ve .NET 4.0'da erken ve sık sık test edin. En büyük risk altında olan böcekleri asla görmeyecek olan geliştiricilerdir.
John Saunders

10

VS betalar tarafından kötü bir şekilde yandım, onları kaldırırken hiçbir zaman kötü bir sorun yaşamadım. Microsoft iyi bir yazılım geliştiriyor ancak yükleyici her zaman halledilen en son şey gibi görünüyor. Gördüğüm sorunlar, bileşenlerin kaldırılmaması, ardından perakende sürümünün ve yükleyicinin diğer yüklü Microsoft ürünlerine güvenmemesi ve yapılandırmalarını yok etmesi.

Bu seferki kadarıyla bir beta öncesi, do not size işin yapılması için gereken bir makinede yükleyin. Bu, VS2008'in kurulu olmasını neredeyse imkansız kılar. VM elbette iyidir.


2
Forumlarda [ social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/… bir şey yayınladım çünkü kurulum .NET Framework 4.0 derlemelerinin yerini alıyor gibi görünüyor (Çılgın olduğumu düşündüm ama açılıyor Reflector'daki System.Core, System.Runtime.CompilerServices.ExtensionAttribute'un eksik olduğunu ortaya çıkardı). Kısacası orada dikkatli olun
Damian

@Damian: 3.0 ve 3.5'te olduğu gibi bazı problemler var: Her ikisi de aslında sadece 2.0 çalışma zamanına dayalı ek özelliklerdi, ancak her ikisi de 2.0 servis paketiyle birlikte geldi (sadece 2.0 kurulumları için ayrı olarak indirilebilir) ve bu gerçekten değişti kaputun altında bazı şeyler. 4.0'a baktığımızda durum daha da kötü: Microsoft, sessizce Windows Update aracılığıyla bazı yeni sürümleri gönderdi - orijinal 4.0.30319.1, .225, .235 ve .237 ile değiştirildi - bunların her biri hataları gidermek ve tanıtmak ya da en azından farklı davranışlar özel alanlar.
springy76

7

RC'yi dün kurdum ve aşağıdakileri buldum:

Birim testlerini çalıştırırken VS2010'un donmasına neden olur (bu, birim testlerinizi çalıştırmak için komut satırında 2012 veya mstest kullanılarak çözülebilir)

VS2010'un C ++ projelerini derleyememesine ve bağlantı hatasıyla başarısız olmasına neden olur . VS2012 RC'yi kaldırdıktan sonra bile, bu sorun hala devam ediyor ... bu yüzden şu anda yüklememenizi şiddetle tavsiye ediyorum


1
VS 2012 RC'yi yükledikten sonra VS 2010'da birim testlerini çalıştırırken aynı sorunu yaşadım. Bunu düzeltmek için, çözümünüzün kök dizininden testimpactdata.sdf dosyasını silin ve test ayarlarınızda Test Etkisi'ni açın.
Sergey Sirotkin

2
Ben de tarif ettiğiniz test problemiyle karşılaştım. Bulduğum çözüm, Visual Studio 2010 Service Pack 1'e yükseltmekti. Görünüşe göre bu 2012'de değil, 2010'da bir sorun, ancak 2012 sürüm adayının yüklenmesiyle tetiklendi. Hizmet paketini VS 2012 yüklendikten sonra bile yükleyebilir ve yine de sorunu çözebilirsiniz. Bu günlerde C ++ ile pek bir şey yapmıyorum, bu yüzden bu da düzeltildiyse yorum yapamam. VS 2010 SP1 şurada bulunabilir: microsoft.com/en-us/download/details.aspx?id=23691
rbwhitaker

6

Öyleyse tüm cevapları okuduktan sonra, mesele şu:

  • VS2012'yi kurduktan sonra .NET 4.5, .NET 4.0'ın üzerine yazacaktır.
  • Yine de VS2010'u kullanabilirsiniz, ancak .NET 4.5'e karşı derlenecektir (.NET 4.0 değiştirildiği için).
  • Tehlike: Artık projelerinizi .NET 4.0 çalıştıran makinelerde güvenli bir şekilde dağıtamazsınız.

5

Evet yapabilirsiniz, ancak her zaman önce önceki sürümleri yüklemeniz önerilir. Ve Visual Studio 2010 projesini VS 11'de açmak ve daha sonra tekrar açmak istiyorsanız, Visual Studio 11'in yeni özelliklerini kullanmadığınızdan emin olun


2

Yan yana kurulabilir ama beta bile değil ..! Aslında çalışmasını beklemeyin!

Yaşadığımız bu sorunu görün ve bu , başka bir yorumda Damian tarafından belirtildi .


2

Dün yaptım ve bugün kaldırdım ...

Görünüşe göre, bir şeyler ters gitti çünkü daha önce oluşturduğum bazı uygulamalar "bla bla bla ... modülü yüklenemiyor" ile ilgili garip hatalar vermeye başladı, bu yüzden her şeyi kaldırdım, .NET Framework 4.0'ın yeniden yüklenmesini zorladım ve şimdi hepsi iyi çalışıyor!


2

Kesinlikle sorunlara neden olabilir. Örneğin:

.NET 4.0'da, LINQ-2-Entities, jup'a bir enum değeri kaydetmeye çalıştığınızda, bunu tahmin ettiniz: 4.5 kurulu makinede çalışırken 4.0 BÜYÜK BAŞARI elde ettiğinizde HATA (derleme 4.0 istemcisini hedeflese bile evet) profil!)

Bu nedenle, hiçbir ters uyumluluğa sahip olmayan bu iyi yeni özelliği kullanırken dikkatli olun.


2

Yan yana 32-bit makine kurulumunda iyi çalışır, ancak bazen hata alabilirsiniz, ancak önceki kurulumun yeniden yüklenmesi veya kaldırılması yüklenebilir. Bunu projenin ortasında yaptım ve önceki çalışmayı da etkilemiyor.


0

Belirtildiği gibi, resmi olarak yapabilirsiniz ama sorunlara neden olabilir.

Visual Studio 2012'yi çalıştırmak istiyorsanız, bence en güvenli yol ücretsiz WMWare VMplayer'ı kullanmak ve üzerine Windows 8 yüklemek ve ardından Visual Studio 2012'yi oraya kurmaktır. En az 4 GB RAM'e ihtiyacınız var ancak 8 GB veya daha fazlasıyla daha iyi çalışıyor. Ben de öyle yapıyorum.


Bahsettiğiniz problemler hakkında daha spesifik olabilir misiniz?
John Saunders

0

Benim temel sorunum, VS2012 RTM'yi kurduktan sonra artık VS2010'dan birim testleri çalıştıramamasıydı! Sonsuza kadar asılı kalır. Onu durduramaz bile.

Yani şimdilik şunu söyleyebilirim ki, MS yine yaptı, yan yana çalışmıyor.

Bunun SP1 uygulanmamış bir VS2010 kurulumundan kaynaklandığını düşünüyorum.


Hangi "VS2010 testlerinden" bahsettiğiniz konusunda net olabilir misiniz?
John Saunders

Bende de bu sorun var - hem vs2010 hem de vs2013'te (tüm en son yamalar / güncellemeler) tekrarlanabilir bir askıda kalma ile herhangi bir test çıktısına bakmaya çalışmak. senden daha iyisini bekliyorum microsoft.
fusi

0

İyi haber, kurulumun bir sistem geri yükleme noktası oluşturmasıdır. Harici sabit disk yedeklemesi, gerçek bir sürüm çıkana ya da sıfırdan bir projeye başlayana kadar bunun çözümüdür.


0

VS2012 kurulumundan sonra Web ve Yük Testi çözümlerinin bozuk göründüğünü fark ettim. Kopyaları alıp 2012'ye yükselttiler ve iyi çalışıyorlar. Sadece VS2010 artık bir test çalıştırması başlatamıyor.


-1

Evet, 2012'den itibaren bir projeyi sorunsuz bir şekilde açabilirsiniz. hala .net 4.0 kullandığı sürece.

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.