Konvertieren der VS2012-Lösung in VS2010

127

Ich arbeite in einem VB-Projekt mit VS 2012 und nach Abschluss versuche ich, ein Setup-Projekt hinzuzufügen.

Ich habe es nicht gefunden (weil das Setup-Projekt nach VS2010 eingestellt wurde), also habe ich zu VS2010 gewechselt, aber das Problem ist, dass das Projekt nicht geöffnet wird und folgende Meldung angezeigt wird:

Die ausgewählte Datei ist eine Lösungsdatei, wurde jedoch von einer neueren Version dieser Anwendung erstellt und kann nicht geöffnet werden.

Ich habe diesen Artikel ausprobiert: http://www.codeproject.com/Tips/80953/Converting-VS2010-Solution-to-VS2008 und versucht, von 2012 auf 2010 zu konvertieren, aber dieselbe Meldung wird angezeigt.

HokaHelal
quelle
Warum verwenden Sie nicht einfach VS2010, um ein einzelnes Setup-Projekt zu erstellen - soweit ich mich erinnere, müssen Sie keine Projekte einschließen und können die Dateien selbst hinzufügen
Carsten
Okay, dies kann eine
Umgehung
1
Hast du sp1 auf vs2010? Ich denke, Sie benötigen das Service Pack, um 2012 Projekt- / Lösungsdateien zu öffnen.
Georgi Stoyanov

Antworten:

306

Ich stand auch vor dem ähnlichen Problem. Ich habe gegoogelt, aber keine Lösung gefunden. Also habe ich es selbst versucht und hier ist meine Lösung.

Öffnen Sie Ihre Lösungsdatei im Editor. Nehmen Sie 2 Änderungen vor

  1. Ersetzen Sie "Format Version 12.00" durch "Format Version 11.00" (ohne Anführungszeichen).
  2. Ersetzen Sie "# Visual Studio 2012" durch "# Visual Studio 2010" (ohne Anführungszeichen).

Hoffe das hilft dir auch ..........

Bhavin
quelle
3
Gibt es einen Nachteil dabei? Es scheint zu einfach, um wahr zu sein.
kbeal2k
4
Es hat bei mir nicht funktioniert, es wurde immer noch behauptet, es sei nicht kompatibel?
David
3
Danke für diesen Tipp! Funktioniert sogar zum Downgrade eines ASP.NET-Web-API-Projekts. Zusätzlich zum Anpassen von Format Version 12.00 an Format Version 11.00 in sln und Anpassen des TargetFrameworkVersion-Elements in csproj von 4.5> 4.0; Ich musste das httpRuntime-Element in web.config entfernen und das Kompilierungsattribut targetFramework in web.config von 4.5> 4.0
AardVark71 am
2
Fantastisch, kann aber nicht glauben, dass es keine Abwärtskompatibilität gibt.
Stephen
1
Ich bin gerade mit VS2013 in diese Falle geraten - habe das Format wieder auf 11 geändert und in VS2010 war wieder alles in Ordnung - danke!
Surfbutler
121

Nur um auf Bhavins hervorragende Antwort einzugehen: Das Bearbeiten der Lösungsdatei funktioniert, aber Sie erhalten möglicherweise immer noch den inkompatiblen Fehler (wie David berichtete), wenn Sie .NET 4.5 als Standardversion von .NET in Ihrem VS2012-Projekt ausgewählt haben und Ihre VS2010-Umgebung dies nicht tut unterstütze das.

Um dies schnell zu beheben, öffnen Sie die VS2012 .csproj-Datei in einem Texteditor und ändern Sie die TargetFrameworkVersion auf 4.0 (von 4.5). VS2010 lädt dann gerne die "bearbeitete" Lösung und die Projekte.

Sie müssen auch eine app.config-Datei mit Verweisen auf .NET 4.5 auf ähnliche Weise bearbeiten, damit sie in einer .NET 4.0-Umgebung ausgeführt werden kann.

Rory Solley
quelle
5
Dies zusammen mit Bhavins Antwort funktionierte perfekt. Danke euch beiden.
Desaivv
2
Danke für diesen Tipp! Funktioniert sogar zum Downgrade eines ASP.NET-Web-API-Projekts. Zusätzlich zum Anpassen von Format Version 12.00 an Format Version 11.00 in sln und Anpassen des TargetFrameworkVersion-Elements in csproj von 4.5> 4.0; Ich musste das httpRuntime-Element in web.config entfernen und das Kompilierungsattribut targetFramework in web.config von 4.5> 4.0
AardVark71 am
Außerdem müssen Sie möglicherweise wie ich Ihre .vcproj-Dateien durchsuchen und das Plattform-Toolset von v110 auf v100 ändern.
Xyon
2

Ich hatte ein ähnliches Problem und keine der oben genannten Lösungen hat funktioniert. Deshalb habe ich einen alten Standby-Modus gewählt, der immer funktioniert:

  1. Benennen Sie den Ordner mit dem Projekt um
  2. Erstellen Sie mit 2010 ein brandneues Projekt mit demselben Namen
  3. Diff die beiden Ordner und->
  4. Kopieren Sie alle Quelldateien direkt
  5. Ignoriere bin / debug / release etc.
  6. Diff die .csproj und kopieren Sie über alle relevanten Zeilen.
  7. Wenn die SLN-Datei nur ein Projekt enthält, ignorieren Sie es. Wenn es komplex ist, dann unterscheiden Sie es auch.

Das funktioniert fast immer, wenn Sie 10 Minuten damit verbracht haben und es nicht bekommen können.

Beachten Sie, dass Sie bei ähnlichen Problemen mit älteren Versionen (2008, 2005) normalerweise nur die Version in .csproj ändern und entweder die Version in .sln ändern oder verwerfen müssen. Dies scheint jedoch für 2013 nicht zu funktionieren .

Wade Hatler
quelle
2

Die einfachste Lösung ist ..... Öffnen Sie Ihre Website in vs2013 und gehen Sie zu Debug-> WebsiteProperties (letzte Option). Ein neues Fenster wird geöffnet.

Gehen Sie in diesem Fenster zur Option "Erstellen" und ändern Sie die .net Framework-Version von 4.5 auf 4.0 ..... und wählen Sie dann OK. [Hinweis: Dieser Schritt funktioniert nur, wenn Ihr Projekt keine Abhängigkeiten zu vs2013 aufweist ...]

Öffnen Sie jetzt Ihre Website in vs2010

Rakeshyadvanshi
quelle
1

Öffnen Sie die Projektdatei und nicht die Lösung. Das Projekt wird vom Assistenten konvertiert. Nach der Konvertierung wird beim Erstellen des Projekts eine neue Lösung als VS2010-Lösung generiert.

Michael Haephrati
quelle
1

Die Lösung von VS2010 wird von VS2012 unterstützt. Die Lösung von VS2012 wird von VS2010 nicht unterstützt -> nur Einweg-Upgrade. VS2012 unterstützt keine Setup-Projekte. Weitere Informationen zur VS2010 / VS2012-Kompatibilität finden Sie hier: http://msdn.microsoft.com/en-us/library/hh266747(v=vs.110).aspx

SomeWittyUsername
quelle
1
Das Lesen dieses Dokuments besagt, dass es Dinge gibt, die zwischen den beiden gut funktionieren - das heißt, Sie können ein Projekt / eine Lösung in VS2012 erstellen und es ohne Probleme in VS2010 öffnen. Das Dokument weist jedoch darauf hin, dass es Dinge gibt, die Sie bei Verwendung im Jahr 2012 nicht im Jahr 2010 öffnen können. Stackoverflow.com/questions/10902865/… ist eine weitere gute, einfache Antwort.
Brasilienianldsjaguar
Wenn Sie es sorgfältig lesen, sollten Sie einen kleinen Unterschied feststellen: In VS2010 erstellte Projekte funktionieren in VS2012, nicht umgekehrt. "... Sie können ein Projekt öffnen, das in Visual Studio 2010 SP1 erstellt wurde ..."
Piotr Lewandowski
0

Einfache Lösung, die bei mir funktioniert hat.

  1. Installieren Sie den Vim-Editor für Windows.
  2. Öffnen Sie die VS 2012-Projektlösung mit dem Vim-Editor und ändern Sie die Version für Visual Studio Solution 10.
  3. Öffnen Sie die Lösung mit Visual Studio 2010 .. und fahren Sie mit Ihrer Arbeit fort;)
Gast
quelle
Warum Vim und nicht nur Notizblock?
Zac