Konwersja rozwiązania VS2012 do VS2010

127

Pracuję w projekcie VB z VS 2012 i po zakończeniu próbuję dodać projekt instalacyjny.

Nie znalazłem tego (ponieważ projekt instalacji został przerwany po VS2010), więc przełączyłem się na VS2010, ale problem polega na tym, że projekt się nie otwiera i pojawia się ten komunikat:

Wybrany plik jest plikiem rozwiązania, ale został utworzony w nowszej wersji tej aplikacji i nie można go otworzyć.

Wypróbowałem ten artykuł: http://www.codeproject.com/Tips/80953/Converting-VS2010-Solution-to-VS2008 i próbowałem przekonwertować z 2012 na 2010, ale pojawia się ten sam komunikat.

HokaHelal
źródło
Dlaczego po prostu nie użyjesz VS2010 do stworzenia pojedynczego projektu konfiguracji - o ile pamiętam, nie musisz dołączać projektów i możesz samodzielnie dodawać pliki
Carsten
Ok, może to być praca wokół idei jest zawsze obejmują konfigurację z projektu w tym samym roztworze, aby dokonać kompilacji / wdrożenie szybko
HokaHelal
1
Czy masz SP1 na VS2010? Myślę, że do otwierania plików projektów / rozwiązań z 2012 r. Potrzebny jest dodatek Service Pack.
Georgi Stoyanov

Odpowiedzi:

306

Ja też stanąłem przed podobnym problemem. Wyszukałem w Google, ale nie mogłem znaleźć rozwiązania. Próbowałem więc samodzielnie i oto moje rozwiązanie.

Otwórz plik rozwiązania w notatniku. Wprowadź 2 zmiany

  1. Zastąp tekst „Wersja formatu 12.00” tekstem „Wersja formatu 11.00” (bez cudzysłowu).
  2. Zastąp „# Visual Studio 2012” tekstem „# Visual Studio 2010” (bez cudzysłowów).

Mam nadzieję, że to również ci pomoże ..........

Bhavin
źródło
3
Czy jest w tym jakiś minus? Wydaje się to zbyt łatwe, aby mogło być prawdziwe.
kbeal2k
4
To nie zadziałało dla mnie, nadal utrzymywało, że jest niezgodne?
David,
3
Dzięki za tę wskazówkę! Działa nawet w przypadku obniżania wersji projektu interfejsu API sieci Web ASP.NET. Oprócz dostosowania wersji formatu 12.00 do wersji formatu 11.00 w sln i dostosowania elementu TargetFrameworkVersion w csproj z 4.5> 4.0; Musiałem usunąć element httpRuntime w web.config i dostosować atrybut targetFramework kompilacji w web.config z 4.5> 4.0
AardVark71
2
Fantastycznie, nie mogę uwierzyć, że nie ma wstecznej kompatybilności.
Stephen Murby
1
Właśnie wpadłem w tę pułapkę używając VS2013 - zmieniłem Format z powrotem na 11 i znowu wszystko było w porządku w VS2010 - dzięki!
Surfbutler
121

Aby rozwinąć doskonałą odpowiedź Bhavina - edycja pliku rozwiązania działa, ale nadal możesz otrzymać niekompatybilny błąd (jak zgłosił David), jeśli masz .NET 4.5 wybrany jako domyślną wersję .NET w projekcie VS2012, a środowisko VS2010 nie. wspierać to.

Aby szybko to naprawić, otwórz plik VS2012 .csproj w edytorze tekstu i zmień wartość TargetFrameworkVersion na 4.0 (z 4.5). VS2010 z radością załaduje wówczas „edytowane” rozwiązanie i projekty.

Będziesz także musiał edytować pliki app.config, które zawierają odniesienia do .NET 4.5 w podobny sposób, aby umożliwić im działanie w środowisku .NET 4.0.

Rory Solley
źródło
5
To wraz z odpowiedzią Bhavina zadziałało doskonale. Dziękuję wam obu.
One-One
2
Dzięki za tę wskazówkę! Działa nawet w przypadku obniżania wersji projektu interfejsu API sieci Web ASP.NET. Oprócz dostosowania wersji formatu 12.00 do wersji formatu 11.00 w sln i dostosowania elementu TargetFrameworkVersion w csproj z 4.5> 4.0; Musiałem usunąć element httpRuntime w web.config i dostosować atrybut kompilacji targetFramework w web.config z 4.5> 4.0
AardVark71
Dodatkowo możesz, tak jak ja, przejść przez pliki .vcproj i zmienić zestaw narzędzi platformy z v110 na v100.
Xyon,
2

Miałem podobny problem i żadne z powyższych rozwiązań nie działało, więc poszedłem ze starym standby, który zawsze działa:

  1. Zmień nazwę folderu zawierającego projekt
  2. Zrób zupełnie nowy projekt o tej samej nazwie w 2010
  3. Porównaj dwa foldery i ->
  4. Skopiuj wszystkie pliki źródłowe bezpośrednio
  5. Ignoruj ​​bin / debug / release itp
  6. Porównaj plik .csproj i skopiuj wszystkie istotne wiersze.
  7. Jeśli plik .sln ma tylko jeden projekt, zignoruj ​​go. Jeśli jest złożony, porównaj go również.

To prawie zawsze działa, jeśli spędziłeś nad tym 10 minut i nie możesz tego zrozumieć.

Zauważ, że w przypadku podobnych problemów ze starszymi wersjami (2008, 2005) zwykle można uciec, zmieniając wersję w .csproj i albo zmieniając wersję w .sln, albo ją odrzucając, ale to nie działa w 2013 .

Wade Hatler
źródło
2

najprostszym rozwiązaniem jest ..... otwórz swoją stronę internetową w vs2013 i przejdź do Debug-> WebsiteProperties (ostatnia opcja) otworzy się nowe okno.

w tym oknie przejdź do opcji „Build” i zmień wersję frameworka .net z 4.5 na 4.0 ..... a następnie wybierz ok. [uwaga: ten krok zadziała tylko wtedy, gdy twój projekt nie ma zależności z vs2013 ...]

Teraz otwórz swoją stronę internetową w vs2010

Rakeshyadvanshi
źródło
1

Otwórz plik projektu, a nie rozwiązanie. Projekt zostanie przekonwertowany przez Kreatora, a po konwersji, podczas budowania projektu, nowe rozwiązanie zostanie wygenerowane jako VS2010.

Michael Haephrati
źródło
1

Rozwiązanie VS2010 jest obsługiwane przez VS2012. Rozwiązanie VS2012 nie jest obsługiwane przez VS2010 -> tylko jednokierunkowa aktualizacja. VS2012 nie obsługuje projektów konfiguracji. Więcej informacji na temat kompatybilności VS2010 / VS2012: http://msdn.microsoft.com/en-us/library/hh266747(v=vs.110).aspx

SomeWittyUsername
źródło
1
Czytanie tego dokumentu mówi, że są rzeczy, które będą działać dobrze między nimi - co oznacza, że ​​możesz stworzyć projekt / rozwiązanie w VS2012 i otworzyć go bez problemów w VS2010. Dokument wskazuje jednak, że są rzeczy, których użycie w 2012 roku nie pozwoli na otwarcie w 2010 roku. Stackoverflow.com/questions/10902865/… to kolejna dobra, prosta odpowiedź.
brazilianldsjaguar
Jeśli się dokładnie przeczytasz, powinieneś zauważyć niewielką różnicę: projekty stworzone w VS2010 działają w VS2012, a nie odwrotnie. "... można otworzyć projekt, który został utworzony w Visual Studio 2010 SP1 ..."
Piotr Lewandowski
0

Proste rozwiązanie, które u mnie zadziałało.

  1. Zainstaluj edytor Vim dla systemu Windows.
  2. Otwórz rozwiązanie projektowe VS 2012 za pomocą edytora Vim i zmodyfikuj wersję docelową rozwiązania Visual studio 10.
  3. Otwórz rozwiązanie z Visual Studio 2010 ... i kontynuuj swoją pracę;)
Gość
źródło
Dlaczego Vim, a nie tylko notatnik?
Zac