Kann Visual Studio 2012 nebeneinander mit Visual Studio 2010 installiert werden?

103

Wird Visual Studio 2012 .NET 4 und / oder Visual Studio 2010 stören / unterbrechen, wenn es nebeneinander auf derselben Windows-Instanz installiert wird?

Chris Pietschmann
quelle
1
ja, beide funktionieren sogar zur gleichen Zeit. Ich habe es versucht.
Eric Yin
3
Visual Studio kann nebeneinander installiert werden. Beachten Sie jedoch, dass VS 2012 mit .NET 4.5 geliefert wird, das .NET 4.0 überschreibt. Kein Problem, es sei denn, Sie müssen noch für .NET 4.0-Computer entwickeln.
Vaccano
4
Sie können weiterhin für .NET 4.0-Computer entwickeln. Sie müssen nur wissen, dass Sie beim Testen Ihrer .NET 4.0-Anwendung auf Ihrem VS2012-Computer eine andere Version von .NET testen als ein Kunde, der .NET 4.5 noch nie installiert hat. Testen Sie also auf einer Maschine, wie sie Ihr Kunde verwenden wird, und Sie werden in Ordnung sein.
John Saunders
ahhhh der Luxus eines Kunden, der eine nützliche Testumgebung bietet! Viel Glück damit: P
JumpingJezza
11
Es ist ein Fehler zu glauben, dass .NET 4.5 vollständig mit .NET 4.0 kompatibel ist, dies ist jedoch nicht der Fall, und in unserem Fall hat es einige unserer Lösungen beschädigt.
Stefan Z Camilleri

Antworten:

32

Wie Reigo sagte, ja. Hier ist der Link zur offiziellen Microsoft-Seite mit den von Reigo bereitgestellten Informationen und weiteren Details: http://msdn.microsoft.com/en-us/library/ms246609%28v=VS.110%29.aspx

Niklas Söderberg
quelle
36
Es kann nebeneinander installiert werden, was bedeutet, dass das Installationsprogramm erfolgreich ausgeführt wird. Sie sollten dies jedoch nur tun, wenn Sie zwei Tage damit verbringen möchten, Visual Studio, .NET 4.5, zu deinstallieren, Ihr .NET 4.0-Framework zu reparieren (das durch die Beta-Installation von 4.5 direkt geändert wird) und die Vielzahl der SQL Server 2012-Tools zu deinstallieren Einer nach dem anderen. Alles, nachdem Ihr zuvor funktionierender 4.0-Code mit einem "Objektreferenz" -Fehler in einer Zeile, die nur einen Kommentar enthält, bombardiert wurde.
mclark1129
8
Dies ist sehr, sehr gefährlich, wenn Sie die Weiterentwicklung für .net 4.0 planen. Dies liegt daran, dass Ihr Entwicklungscomputer die .net 4.5-Binärdateien verwendet (da .net 4.5 ein direktes Upgrade ist). Diese Binärdateien enthalten Fehlerkorrekturen, die beim Debuggen von .net 4.0 für Sie "ausgeblendet" werden. Wenn Sie jedoch auf einem Computer bereitstellen, auf dem nur .net 4.0 (z. B. Windows XP) ausgeführt wird, werden diese Fehler für Ihren Benutzer nicht behoben . Weitere Informationen finden Sie in diesem Beitrag: social.msdn.microsoft.com/Forums/en-US/wpf/thread/…
Vaccano
2
Versuchen Sie es in einer virtuellen Maschine. Ich kann die von Mike C beschriebenen Probleme bestätigen. Ich nahm an, dass VS2012 sicher zu versuchen wäre. Ich hatte so viele nervige Probleme, dass ich meinem Computer nicht vertraute und Windows neu installierte.
Kenchilada
2
Gibt es diese Probleme bei VS 2012 RTM noch?
Tim Friesen
1
@ TimFriesen - Das von mir beschriebene Problem ist immer noch im RTM. Es handelt sich um einen Konstruktionsfehler mit dem "direkten" Upgrade-Plan, den Microsoft für .NET 4.5 übernommen hat.
Vaccano
30

Die .net 4.5-Version ist ein direktes Upgrade.

Dies bedeutet, dass die Binärdateien für .net 4.0 durch die Binärdateien für .net 4.5 ERSETZT werden .

Microsoft hat versucht, die dadurch verursachten Probleme durch eine Funktion "Target .net 4.0" zu verringern. Dies unterscheidet sich jedoch stark von den früheren Versionen von .net (die seit .net 2.0 nebeneinander liegen).

Da es sich um ein direktes Upgrade handelt, kann "Target .net 4.0" nicht wirklich darauf abzielen. Das Beste, was sie tun können, ist zu versuchen, einige "Funktionen" manuell zu entfernen. Sie haben dies getan (Scott Hanselman hatte einen Blog-Beitrag darüber).

Aber lassen Sie sich nicht täuschen, dass Sie wirklich .net 4.0 verwenden. Alle durch .net 4.5 behobenen Fehler werden auf Ihrem Entwicklungscomputer und nicht für Ihre .net 4.0-Benutzer behoben.

Wenn Sie also eine Anwendung "Targeting .net 4.0" entwickeln und .net 4.5 installiert haben, sind Sie gefährdet. Wenn Sie versehentlich einen behobenen Fehler verwenden, wird dieser beim Debuggen nicht für Sie unterbrochen.

Wenn Sie Ihre App auf einem Computer bereitstellen, auf dem nur .net 4.0 (z. B. Windows XP) ausgeführt wird, werden diese Fehler für Ihren Benutzer nicht behoben .

In jeder Hinsicht sind diese behobenen Fehler jetzt "versteckte Fehler" (für Entwickler, die noch auf .net 4.0 abzielen müssen.

Das Beste daran ist, dass es keine Rolle spielt, ob Sie VS 2010 oder VS 2012 verwenden. Sobald .net 4.5 installiert ist, werden die Fehler ausgeblendet.

Weitere Informationen finden Sie in diesem Beitrag: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a/

Vaccano
quelle
Entschuldigung, aber das verbirgt den Punkt des Problems. Das Problem besteht nur, wenn Sie von Ihren Tests auf Ihrem Entwicklungscomputer abhängig sind, um zu erfahren, wann Ihre Anwendung funktioniert. Wenn Sie in der Umgebung testen können, die Ihre Kunden verwenden (und ich denke, die meisten Entwickler sind in dieser Position), haben Sie dieses Problem nicht. Wenn Sie eine zweite Maschine zum Testen haben, einschließlich einer virtuellen Maschine, ist dies kein Problem.
John Saunders
4
@ JohnSaunders - Wir haben eine ganze QS-Abteilung, die auf unserer Zielplattform testet. Viele Studien haben jedoch gezeigt, dass die verschiedenen Arten von Tests verschiedene Arten von Fehlern auffangen. Das Zeug, nach dem ich beim Debuggen suche, ist nicht das gleiche Maß an Fehlern, das mein QA-Team finden wird. Auch hier werden meine automatisierten Tests nicht alle Dinge bemerken, die ich beim Debuggen bemerken werde. Und schließlich kostet das Schreiben einer Funktion, die von einem Fehler abhängt, den Sie nicht beheben können, $$$. Wenn der Fehler gefunden wird, sind die Kosten umso höher, je weiter er von meiner Entwicklungsmaschine entfernt ist. (Vor allem, wenn ich die Funktion "beendet" habe.)
Vaccano
"Das Problem besteht nur, wenn Sie von Ihren Tests auf Ihrem Entwicklungscomputer abhängig sind, um zu erfahren, wann Ihre Anwendung funktioniert." - Bedeuten Sie, dass Sie Ihren Code nicht auf Ihrem Entwicklungscomputer testen? - Das ist ein echtes Problem. Besonders für diejenigen, die nichts davon wissen. (Und da Microsoft es nicht öffentlich bekannt geben wird, sind das viele, viele Entwickler.)
Vaccano
Die Tests, die ich auf meinem Entwicklungscomputer durchführe, bestimmen nicht, ob mein Code funktioniert oder nicht. Sie bestimmen nur, wie wahrscheinlich es ist, dass die QS-Abteilung meine Fehler in den ersten fünf Minuten findet oder nicht. Ich teste auf meiner eigenen Maschine, um die Verlegenheit zu verringern. Es sind die automatisierten Komponententests in den Builds und die tatsächlichen Tests durch die Qualitätssicherung, die bestimmen, ob mein Code an Kunden versendet wird oder nicht. Diese Tests umfassen Tests in einer Umgebung wie der der Kunden. In diesem Fall wären dies Windows XP und .NET 4.0.
John Saunders
Es tut mir leid, aber wenn Sie eine QS-Abteilung haben, sehe ich Ihr Problem überhaupt nicht. Ich kann mir nicht vorstellen, dass es so viele .NET 4.0-Fehler gibt, die durch .NET 4.5 behoben wurden, dass es Sie sehr viel Geld kosten würde, wenn Sie zufällig Code schreiben würden, der von diesen Fehlern abhängt. Wenn Sie glauben, dass Sie dieses Problem haben, testen Sie früh und häufig unter Windows XP und .NET 4.0. Es sind diese Entwickler, die niemals die Fehler sehen werden, die dem größten Risiko ausgesetzt sind.
John Saunders
10

Ich wurde von VS-Betas schwer verbrannt und hatte nie ein böses Problem damit, sie zu deinstallieren. Microsoft macht gute Software, aber das Installationsprogramm scheint immer das allerletzte zu sein, um das man sich kümmert. Probleme, die ich gesehen habe, sind die Deinstallation, bei der keine Komponenten entfernt werden, die dann die Retail Edition vermasseln, und das Installationsprogramm nicht auf andere installierte Microsoft-Produkte setzt und deren Konfiguration zerstört.

Dieser ist weit vor einer Beta, installieren Sie ihn nicht auf einem Computer, den Sie benötigen, um Ihre Arbeit zu erledigen. Was die Installation von VS2008 so gut wie ausschließt. VM ist natürlich in Ordnung.

Hans Passant
quelle
2
Ich habe gerade etwas in den Foren gepostet [ social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/…, weil es den Anschein hat, dass die Installation .NET Framework 4.0-Assemblys ersetzt (ich dachte, ich wäre verrückt gewesen, hätte mich aber geöffnet System.Core in Reflector ergab, dass System.Runtime.CompilerServices.ExtensionAttribute fehlte. Kurz gesagt, seien Sie vorsichtig da draußen
Damian
@Damian: Es ist ein Problem, wie es bei 3.0 und 3.5 der Fall war: Beide waren im Wesentlichen nur zusätzliche Funktionen, die auf der 2.0-Laufzeit basierten, aber beide wurden mit einem 2.0-Service Pack geliefert (das separat nur für 2.0-Installationen heruntergeladen werden konnte), das sich tatsächlich geändert hat einige Dinge unter der Haube. Mit 4.0 ist es noch schlimmer: Microsoft hat nur stillschweigend einige neue Versionen über Windows Update ausgeliefert - das Original 4.0.30319.1 wurde durch .225, .235 und .237 ersetzt - jede von ihnen behebt und führt Fehler oder zumindest ein anderes Verhalten ein Spezifische Gebiete.
springy76
7

Ich habe gestern den RC installiert und Folgendes festgestellt:

VS2010 friert beim Ausführen von Komponententests ein (dies kann mithilfe von 2012 oder mstest in der Befehlszeile zum Ausführen Ihrer Komponententests umgangen werden).

Dies führt dazu, dass VS2010 C ++ - Projekte nicht kompilieren kann und ein Linkfehler auftritt . Auch nach der Deinstallation von VS2012 RC besteht dieses Problem weiterhin. Ich würde daher dringend davon abraten, es jetzt zu installieren

Orion Edwards
quelle
1
Ich hatte das gleiche Problem beim Ausführen von Komponententests in VS 2010, nachdem ich VS 2012 RC installiert hatte. Um dies zu beheben, löschen Sie testimpactdata.sdf aus dem Stammverzeichnis Ihrer Lösung und aktivieren Sie Test Impact in Ihren Testeinstellungen.
Sergey Sirotkin
2
Ich bin auf das Testproblem gestoßen, das Sie auch beschreiben. Die Lösung, die ich gefunden habe, war ein Upgrade auf Visual Studio 2010 Service Pack 1. Anscheinend ist dies ein Problem im Jahr 2010, nicht 2012, aber es wird nur durch die Installation des Release-Kandidaten 2012 ausgelöst. Sie sollten in der Lage sein, das Service Pack auch nach der Installation von VS 2012 zu installieren und das Problem dennoch zu beheben. Ich mache heutzutage nicht viel mit C ++, daher kann ich nicht kommentieren, ob das auch behoben ist. VS 2010 SP1 finden Sie hier: microsoft.com/en-us/download/details.aspx?id=23691
rbwhitaker
6

Wenn Sie also alle Antworten lesen, kommt es darauf an:

  • Nach der Installation von VS2012 überschreibt .NET 4.5 .NET 4.0.
  • Sie können VS2010 weiterhin verwenden, es wird jedoch gegen .NET 4.5 kompiliert (da .NET 4.0 ersetzt wird).
  • Gefahr: Sie können Ihre Projekte nicht mehr sicher auf Computern bereitstellen, auf denen .NET 4.0 ausgeführt wird.
Jenny O'Reilly
quelle
5

Ja, das können Sie, aber es wird immer empfohlen, zuerst frühere Versionen zu installieren. Wenn Sie das Visual Studio 2010-Projekt in VS 11 und später wieder öffnen möchten, stellen Sie sicher, dass Sie keine neuen Funktionen von Visual Studio 11 verwenden

Reigo Hein
quelle
2

Es kann nebeneinander installiert werden, aber es ist nicht einmal Beta ..! Erwarten Sie nicht, dass es tatsächlich funktioniert!

Sehen Sie dieses Problem , das wir haben sollten , und dies durch erwähnt Damian in einem anderen Kommentar.

Hundeohren
quelle
2

Ich habe es gestern gemacht und heute deinstalliert ...

Anscheinend ist ein Fehler aufgetreten, da einige Apps, die ich zuvor erstellt habe, seltsame Fehler in Bezug auf "Modul Bla Bla Bla kann nicht geladen werden ..." enthielten. Ich habe also alles deinstalliert, die Neuinstallation von .NET Framework 4.0 erzwungen und jetzt funktioniert alles wieder einwandfrei!

Pedro Lamas
quelle
2

Es kann definitiv Probleme verursachen. Beispielsweise:

Wenn Sie in .NET 4.0 versuchen, einen Aufzählungswert in LINQ-2-Entities zu speichern, haben Sie Folgendes erraten: FEHLER, wenn Sie 4.0 GROSSEN ERFOLG haben, wenn Sie auf einem Computer mit installiertem 4.5 arbeiten (ja, obwohl die Assembly auf den 4.0-Client abzielt Profil!)

Achten Sie also darauf, wenn Sie diese gute neue Funktion verwenden, die keinerlei umgekehrte Kompatibilität aufweist.

Rvcl
quelle
2

Es funktioniert gut bei 32-Bit-Computern, die nebeneinander installiert werden. Manchmal kann es jedoch zu Fehlern kommen, aber die vorherige Installation kann erneut installiert oder deinstalliert werden. Ich habe es während der Mitte des Projekts gemacht und es hat auch keine Auswirkungen auf frühere Arbeiten.

Chandrabhan Gurjar
quelle
0

Wie bereits erwähnt, können Sie offiziell, aber es kann Probleme verursachen.

Wenn Sie Visual Studio 2012 ausführen möchten, ist es meiner Meinung nach am sichersten, den kostenlosen WMWare VMplayer zu verwenden und Windows 8 darauf zu installieren. Installieren Sie dann dort Visual Studio 2012. Sie benötigen mindestens 4 GB RAM, laufen jedoch mit 8 GB oder mehr besser. Das mache ich sowieso.

Adam Mendoza
quelle
Können Sie genauer sagen, auf welche Probleme Sie sich beziehen?
John Saunders
0

Mein Hauptproblem war, dass man nach der Installation von VS2012 RTM keine Unit-Tests mehr von VS2010 ausführen kann! Es hängt einfach für immer. Kann es nicht einmal aufhalten.

Im Moment würde ich sagen, MS hat es wieder getan, Seite an Seite funktioniert nicht.

Ich denke, dies kann daran liegen, dass es sich um eine VS2010-Installation ohne SP1 handelt.

Nietras
quelle
Können Sie genau angeben, auf welche "Tests von VS2010" Sie sich beziehen?
John Saunders
Ich habe auch dieses Problem - der Versuch, alle Testergebnisse zu überprüfen, führt zu einem reproduzierbaren Hang sowohl in vs2010 als auch in vs2013 (alle neuesten Patches / Updates). Ich erwarte besser von dir Microsoft.
Fusi
0

Die gute Nachricht ist, dass die Installation einen Systemwiederherstellungspunkt darstellt. Externe Festplatten-Backups sind die Lösung dafür, bis eine echte Version herauskommt oder Sie ein Projekt von Grund auf neu starten.

MvcCmsJon
quelle
0

Ich habe festgestellt, dass Web- und Loadtesting-Lösungen nach der Installation von VS2012 fehlerhaft erscheinen. Haben Kopien genommen und auf 2012 aktualisiert und sie funktionieren gut. Es ist nur VS2010 kann keinen Testlauf mehr starten.

Big Ian
quelle
-1

Ja, Sie können auch problemlos ein Projekt von 2012 bis 2010 ohne Probleme öffnen. solange es noch .net 4.0 verwendet.

JGilmartin
quelle