Czy program Visual Studio 2012 można zainstalować obok siebie w programie Visual Studio 2010?

103

Czy program Visual Studio 2012 będzie zakłócał / uszkadzał .NET 4 i / lub Visual Studio 2010, jeśli zostanie zainstalowany obok siebie w tym samym wystąpieniu systemu Windows?

Chris Pietschmann
źródło
1
tak, oba działają, nawet w tym samym czasie. Próbowałem.
Eric Yin
3
Program Visual Studio można zainstalować obok siebie, ale pamiętaj, że VS 2012 zawiera .NET 4.5, który zastępuje .NET 4.0. Żaden problem, chyba że nadal musisz programować dla maszyn .NET 4.0.
Vaccano
4
Nadal możesz programować dla maszyn .NET 4.0. Musisz tylko wiedzieć, że testując aplikację .NET 4.0 na maszynie VS2012, będziesz testować inną wersję .NET niż klient, który nigdy nie instalował .NET 4.5. Więc przetestuj na maszynie takiej jak ta, z której będzie korzystał Twój klient, a wszystko będzie dobrze.
John Saunders
ahhhh luksus klienta, który zapewnia użyteczne środowisko testowe! Powodzenia z tym: P
JumpingJezza
11
błędem jest myślenie, że .NET 4.5 jest w pełni kompatybilny z .NET 4.0, tak nie jest iw naszym przypadku zepsuło kilka naszych rozwiązań.
Stefan Z Camilleri

Odpowiedzi:

32

Jak powiedział Reigo, tak. Oto link do oficjalnej strony Microsoft z informacjami podanymi przez Reigo i więcej szczegółów: http://msdn.microsoft.com/en-us/library/ms246609%28v=VS.110%29.aspx

Niklas Söderberg
źródło
36
Można go zainstalować obok siebie, co oznacza, że ​​instalator zostanie pomyślnie uruchomiony. Jednak nie powinieneś tego robić, chyba że chcesz poświęcić dwa dni na odinstalowanie programu Visual Studio, .NET 4.5, naprawę platformy .NET 4.0 (która MOŻE zostać bezpośrednio zmodyfikowana przez instalację wersji beta 4.5) i odinstalowanie wielu narzędzi SQL Server 2012 jeden po drugim. Wszystko po tym, jak twój poprzednio działający kod 4.0 zaczyna bombardować błędem „odwołanie do obiektu” w wierszu, który zawiera tylko komentarz.
mclark1129
8
Jest to bardzo niebezpieczne, jeśli planujesz kontynuować rozwój dla .net 4.0. Dzieje się tak, ponieważ twój komputer deweloperski będzie używał plików binarnych .net 4.5 (ponieważ .net 4.5 jest uaktualnieniem w miejscu). Te pliki binarne zawierają poprawki błędów, które będą „ukryte” przed Tobą podczas debugowania ukierunkowanego na .net 4.0. Ale kiedy wdrażasz na komputerze, na którym działa tylko .net 4.0 (tj. Windows XP), te błędy nie są naprawiane dla twojego użytkownika . Zobacz ten post, aby uzyskać więcej informacji: social.msdn.microsoft.com/Forums/en-US/wpf/thread/…
Vaccano,
2
Wypróbuj na maszynie wirtualnej. Potwierdzam problemy opisane przez Mike'a C. Zakładałem, że VS2012 będzie bezpieczne. Napotkałem tak wiele irytujących problemów, że nie ufałem mojemu komputerowi i ponownie zainstalowałem system Windows.
kenchilada
2
Czy te problemy nadal występują w VS 2012 RTM?
Tim Friesen
1
@TimFriesen - Opisany przeze mnie problem wciąż znajduje się w RTM. Jest to wada projektowa związana z planem aktualizacji „w miejscu”, który firma Microsoft przyjęła dla platformy .NET 4.5.
Vaccano
30

Wydanie .net 4.5 to uaktualnienie w miejscu.

Oznacza to, że pliki binarne dla .net 4.0 zostaną ZASTĄPIONE przez pliki binarne dla .net 4.5 .

Firma Microsoft podjęła próbę złagodzenia tych problemów, wprowadzając funkcję „Target .net 4.0”. Ale to bardzo różni się od kierowania na poprzednie wersje .net (które były obok siebie od .net 2.0).

Ponieważ jest to uaktualnienie w miejscu, „Target .net 4.0” nie może być tak naprawdę skierowane do niego. Najlepsze, co mogą zrobić, to spróbować ręcznie usunąć niektóre „funkcje”. Zrobili to (Scott Hanselman zamieścił post na blogu, który to opisuje).

Ale nie daj się zwieść myśleniu, że naprawdę używasz .net 4.0. Wszelkie błędy naprawione przez .net 4.5 zostaną naprawione na twojej maszynie deweloperskiej, a nie dla użytkowników .net 4.0.

Jeśli więc tworzysz aplikację przeznaczoną dla .net 4.0 i masz zainstalowaną wersję .net 4.5, jesteś zagrożony. Jeśli przypadkowo użyjesz naprawionego błędu, nie zepsuje się on podczas debugowania.

Gdy wdrażasz aplikację na komputerze, na którym działa tylko .net 4.0 (np. Windows XP), te błędy nie są naprawiane dla użytkownika .

Pod każdym względem, te naprawione błędy są teraz „Ukrytymi błędami” (dla deweloperów, którzy nadal muszą korzystać z platformy .net 4.0.

Najlepsze jest to, że nie ma znaczenia, czy używasz VS 2010 czy VS 2012. Po zainstalowaniu .net 4.5 błędy są ukrywane.

Zobacz ten post, aby uzyskać więcej informacji: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a/

Vaccano
źródło
Przepraszamy, ale to ukrywa sedno problemu. Problem istnieje tylko wtedy, gdy polegasz na testach na komputerze deweloperskim, aby powiedzieć ci, kiedy aplikacja działa. Jeśli możesz testować w środowisku, z którego będą korzystać Twoi klienci (i myślę, że większość programistów jest na takiej pozycji), to nie masz tego problemu. Jeśli masz jakąkolwiek drugą maszynę do przetestowania, w tym maszynę wirtualną, nie stanowi to problemu.
John Saunders
4
@JohnSaunders - Mamy cały dział kontroli jakości, który przeprowadza testy na naszej platformie docelowej. Jednak wiele badań wykazało, że różne rodzaje testów wychwytują różne rodzaje błędów. Rzeczy, których szukam podczas debugowania, to nie ten sam poziom błędów, które znajdzie mój zespół ds. Kontroli jakości. Ponownie, moje testy automatyczne nie zauważą wszystkich rzeczy, które zauważę podczas debugowania. I wreszcie, napisanie funkcji, która zależy od błędu, którego nie możesz naprawić, kosztuje $$$. Kiedy błąd zostanie znaleziony, im dalej od mojej maszyny deweloperskiej, tym więcej kosztuje. (Zwłaszcza jeśli „zakończyłem” tę funkcję.)
Vaccano
„Problem istnieje tylko wtedy, gdy polegasz na testach na swojej maszynie programistycznej, aby powiedzieć ci, kiedy aplikacja działa” - Czy sugerujesz, że nie testujesz kodu na swojej maszynie deweloperskiej? - To jest prawdziwy problem. Szczególnie dla tych, którzy o tym nie wiedzą. (A ponieważ Microsoft nie ogłosi tego publicznie, to znaczy wielu programistów.)
Vaccano
Testy, które wykonuję na moim komputerze deweloperskim, nie określają, czy mój kod działa, czy nie. Określają tylko, jakie jest prawdopodobieństwo, że dział kontroli jakości znajdzie moje błędy w ciągu pierwszych pięciu minut, czy nie. Testuję na własnej maszynie, aby zmniejszyć zakłopotanie. To automatyczne testy jednostkowe w kompilacjach i prawdziwe testy przeprowadzane przez kontrolę jakości określają, czy mój kod jest dostarczany klientom. Testy te będą obejmowały testy w środowisku takim jak klienci. W tym przypadku będzie to Windows XP i .NET 4.0.
John Saunders
Przepraszam, ale jeśli masz dział kontroli jakości, to w ogóle nie widzę twojego problemu. Nie mogę sobie wyobrazić, że jest tak wiele błędów .NET 4.0 naprawionych przez .NET 4.5, że pisanie kodu zależnego od tych błędów kosztowałoby cię bardzo dużo pieniędzy. Jeśli uważasz, że napotkasz ten problem, przetestuj wcześnie i często w systemie Windows XP i .NET 4.0. To ci programiści, którzy nigdy nie zobaczą błędów, są najbardziej zagrożeni.
John Saunders
10

Zostałem mocno spalony przez VS w wersji beta, nigdy nie miałem paskudnego problemu z ich odinstalowaniem. Microsoft tworzy dobre oprogramowanie, ale wydaje się, że instalator jest zawsze ostatnią rzeczą, o którą się troszczy. Problemy, które widziałem, to odinstalowanie, które nie usuwa składników, które następnie psują wersję detaliczną, a instalator nie liczy na inne zainstalowane produkty Microsoft i niszczy ich konfigurację.

Ten jest daleko przed wersją beta, nie instaluj go na maszynie, której potrzebujesz do wykonania swojej pracy. Co prawie wyklucza zainstalowanie VS2008. VM jest oczywiście w porządku.

Hans Passant
źródło
2
Właśnie opublikowałem coś na forach [ social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/… ponieważ wygląda na to, że instalacja zastępuje zestawy .NET Framework 4.0 (myślałem, że musiałem być szalony, ale otwieram System.Core in Reflector ujawnił, że brakuje System.Runtime.CompilerServices.ExtensionAttribute). Krótko mówiąc, bądźcie ostrożni
Damian
@Damian: Jest to pewien problem, tak jak w przypadku wersji 3.0 i 3.5: Obie zasadniczo były tylko dodatkowymi funkcjami opartymi na środowisku wykonawczym 2.0, ale oba były dostarczane wraz z dodatkiem Service Pack 2.0 (który można pobrać osobno dla instalacji tylko w wersji 2.0), który rzeczywiście się zmienił kilka rzeczy pod maską. Patrząc na 4.0 jest jeszcze gorzej: Microsoft po cichu wysłał kilka nowych wersji za pośrednictwem Windows Update - oryginalny 4.0.30319.1 został zastąpiony przez .225, .235 i .237 - każda z nich naprawiała i wprowadzała błędy lub przynajmniej inne zachowanie w określonych obszarach.
springy76
7

Wczoraj zainstalowałem RC i znalazłem:

Powoduje to zawieszenie VS2010 podczas wykonywania testów jednostkowych (można to obejść, używając 2012 lub mstest w wierszu polecenia, aby uruchomić testy jednostkowe)

Powoduje to, że VS2010 nie jest w stanie skompilować projektów C ++, co kończy się niepowodzeniem z powodu błędu łącza . Nawet po odinstalowaniu VS2012 RC ten problem nadal występuje ... więc odradzam instalowanie go teraz

Orion Edwards
źródło
1
Miałem ten sam problem z uruchamianiem testów jednostkowych w VS 2010 po zainstalowaniu VS 2012 RC. Aby to naprawić, usuń plik testimpactdata.sdf z katalogu głównego rozwiązania i włącz Test Impact w ustawieniach testu.
Sergey Sirotkin
2
Natknąłem się na problem z testowaniem, który również opisujesz. Rozwiązaniem, które znalazłem, było uaktualnienie do Visual Studio 2010 z dodatkiem Service Pack 1. Najwyraźniej jest to problem w 2010, a nie w 2012 roku, ale został wywołany po prostu przez zainstalowanie kandydata do wydania 2012. Powinno być możliwe zainstalowanie dodatku Service Pack nawet po zainstalowaniu programu VS 2012 i nadal można rozwiązać problem. Obecnie niewiele robię z C ++, więc nie mogę komentować, czy to też zostało naprawione. VS 2010 SP1 można znaleźć tutaj: microsoft.com/en-us/download/details.aspx?id=23691
rbwhitaker
6

Czytając wszystkie odpowiedzi, sprowadza się to do tego:

  • Po zainstalowaniu VS2012, .NET 4.5 nadpisze .NET 4.0.
  • Nadal możesz używać VS2010, ale skompiluje się on z .NET 4.5 (ponieważ .NET 4.0 został zastąpiony).
  • Niebezpieczeństwo: nie można już bezpiecznie wdrażać projektów na komputerach z systemem .NET 4.0.
Jenny O'Reilly
źródło
5

Tak, możesz, ale zawsze zaleca się zainstalowanie wcześniejszych wersji. A jeśli chcesz otworzyć projekt programu Visual Studio 2010 w programie VS 11, a później ponownie, upewnij się, że nie używasz nowych funkcji programu Visual Studio 11

Reigo Hein
źródło
2

Można go zainstalować obok siebie, ale nie jest to nawet wersja beta ..! Nie oczekuj, że faktycznie zadziała!

Zobacz ten problem, który mamy, i ten wspomniany przez Damiana w innym komentarzu.

Uszy psa
źródło
2

Zrobiłem to wczoraj, a dziś odinstalowałem ...

Najwyraźniej coś poszło nie tak, ponieważ niektóre aplikacje, które zbudowałem wcześniej, zaczęły wyświetlać dziwne błędy dotyczące „nie można załadować modułu bla bla bla ...”, więc odinstalowałem wszystko, wymusiłem ponowną instalację .NET Framework 4.0 i teraz wszystko znowu działa dobrze!

Pedro Lamas
źródło
2

Z pewnością może powodować problemy. Na przykład:

W .NET 4.0, gdy ktoś próbuje zapisać wartość wyliczenia w LINQ-2-Entities, jup, zgadłeś: BŁĄD, gdy masz 4.0 WIELKI SUKCES podczas pracy na komputerze z zainstalowanym 4.5 (tak, mimo że zestaw jest przeznaczony dla klienta 4.0 profil!)

Dlatego uważaj, używając tej nowej, dobrej funkcji, która nie ma żadnej kompatybilności wstecznej.

Rvcl
źródło
2

Działa dobrze na 32-bitowych maszynach instalujących się obok siebie, ale czasami może wystąpić błąd, ale można zainstalować ponownie lub odinstalować poprzednią instalację. Zrobiłem to w połowie projektu i nie ma to również wpływu na poprzednią pracę.

chandrabhan gurjar
źródło
0

Jak już wspomniano, oficjalnie można, ale może to powodować problemy.

Jeśli chcesz uruchomić Visual Studio 2012, myślę, że najbezpieczniejszym sposobem jest użycie darmowego WMWare VMplayer i zainstalowanie na nim Windows 8, a następnie zainstalowanie tam Visual Studio 2012. Potrzebujesz co najmniej 4 GB pamięci RAM, ale działa lepiej z 8 GB lub więcej. W każdym razie to robię.

Adam Mendoza
źródło
Czy możesz bardziej szczegółowo określić, o których problemach się odnosisz?
John Saunders
0

Moim głównym problemem było to, że po zainstalowaniu VS2012 RTM nie można już uruchamiać testów jednostkowych z VS2010! Po prostu wisi na zawsze. Nie mogę tego nawet zatrzymać.

Więc na razie powiedziałbym, stwardnienie rozsiane zrobiło to znowu, obok siebie nie działa.

Myślę, że może to być spowodowane instalacją VS2010 bez dodatku SP1.

nietras
źródło
Czy możesz sprecyzować, do jakich „testów z VS2010” masz na myśli?
John Saunders
Mam też ten problem - próba przyjrzenia się wynikom testów powoduje powtarzalne zawieszenie zarówno w vs2010, jak i vs2013 (wszystkie najnowsze poprawki / aktualizacje). oczekuję od ciebie lepszego microsoft.
fusi
0

Dobrą wiadomością jest to, że instalacja stanowi punkt przywracania systemu. Kopia zapasowa na zewnętrznym dysku twardym jest rozwiązaniem tego problemu do czasu wydania rzeczywistej wersji lub rozpoczęcia projektu od zera.

MvcCmsJon
źródło
0

Zauważyłem, że rozwiązania Web & Loadtesting wyglądają na zepsute po instalacji VS2012. Zrobiłem kopie i zaktualizowałem do 2012 i działają dobrze. Po prostu VS2010 nie może już zainicjować uruchomienia testowego.

Big Ian
źródło
-1

Tak, możesz bez problemu otworzyć projekt z 2012 roku w 2010 roku. tak długo, jak nadal używa .net 4.0.

JGilmartin
źródło