Можно ли установить Visual Studio 2012 параллельно с Visual Studio 2010?

103

Будет ли Visual Studio 2012 мешать / нарушать работу .NET 4 и / или Visual Studio 2010, если они установлены параллельно на одном экземпляре Windows?

Крис Питчманн
источник
1
да, оба работают, даже в одно и то же время. Я попытался.
Эрик Инь
3
Visual Studio можно установить параллельно, но имейте в виду, что VS 2012 поставляется с .NET 4.5, который заменяет .NET 4.0. Не проблема, если вам все еще не нужно разрабатывать для машин .NET 4.0.
Vaccano
4
Вы все еще можете разрабатывать для машин .NET 4.0. Вам просто нужно знать, что при тестировании приложения .NET 4.0 на компьютере VS2012 вы будете тестировать версию .NET, отличную от версии клиента, который никогда не устанавливал .NET 4.5. Так что протестируйте на машине, подобной той, что будет использовать ваш клиент, и все будет в порядке.
Джон Сондерс
аааа роскошь клиента, предоставляющего полезную среду тестирования! Удачи с этим: P
JumpingJezza
11
ошибочно думать, что .NET 4.5 полностью совместим с .NET 4.0, это не так, и фактически в нашем случае это сломало некоторые из наших решений.
Stefan Z Camilleri

Ответы:

32

Как сказал Рейго, да. Вот ссылка на официальную страницу Microsoft с предоставленной информацией о Рейго и более подробной информацией: http://msdn.microsoft.com/en-us/library/ms246609%28v=VS.110%29.aspx

Никлас Сёдерберг
источник
36
Его «можно» установить параллельно, что означает, что программа установки успешно запустится. Однако вам не следует этого делать, если вы не хотите потратить два дня на удаление Visual Studio, .NET 4.5, восстановление инфраструктуры .NET 4.0 (которая ДЕЙСТВИТЕЛЬНО изменяется непосредственно при установке бета версии 4.5) и удаление множества инструментов SQL Server 2012. по одному. Все после того, как ваш ранее работавший код 4.0 начинает бомбить с ошибкой «Ссылка на объект» в строке, содержащей только комментарий.
mclark1129
8
Это очень-очень опасно, если вы планируете продолжать разработку для .net 4.0. Это связано с тем, что ваша машина разработки будет использовать двоичные файлы .net 4.5 (поскольку .net 4.5 - это обновление на месте). В этих двоичных файлах исправлены ошибки, которые будут «скрыты» от вас при отладке, ориентированной на .net 4.0. Но когда вы выполняете развертывание на машине, на которой запущен только .net 4.0 (т.е. Windows XP), эти ошибки не исправляются для вашего пользователя . См. Этот пост для более подробной информации: social.msdn.microsoft.com/Forums/en-US/wpf/thread/…
Vaccano,
2
Попробуйте это на виртуальной машине. Я могу подтвердить проблемы, описанные Майком С. Я предположил, что VS2012 можно безопасно попробовать. Я столкнулся с таким количеством досадных проблем, что в конце концов перестал доверять своей машине и переустановил Windows.
kenchilada 06
2
Существуют ли эти проблемы с VS 2012 RTM?
Тим Фризен
1
@TimFriesen - Проблема, которую я описал, все еще находится в RTM. Это недостаток конструкции плана обновления «на месте», принятого Microsoft для .NET 4.5.
Vaccano
30

Выпуск .net 4.5 - это обновление на месте.

Это означает, что двоичные файлы для .net 4.0 будут ЗАМЕНЕНЫ двоичными файлами для .net 4.5 .

Microsoft попыталась смягчить эти проблемы, добавив функцию «Target .net 4.0». Но это сильно отличается от нацеливания на предыдущие версии .net (которые были рядом с .net 2.0).

Поскольку это обновление на месте, "Target .net 4.0" не может нацеливаться на него. Лучшее, что они могут сделать, - это попытаться вручную удалить некоторые «особенности». Они сделали это (Скотт Хансельман написал об этом в блоге ).

Но не позволяйте этому обмануть вас, думая, что вы действительно используете .net 4.0. Любые ошибки, исправленные с помощью .net 4.5, будут исправлены на вашей машине разработки, а не для пользователей .net 4.0.

Поэтому, если вы разрабатываете приложение, ориентированное на .net 4.0, и у вас установлен .net 4.5, вы подвергаетесь риску. Если вы случайно воспользуетесь исправленной ошибкой, она не сломается при отладке.

Когда вы развертываете свое приложение на машине, на которой работает только .net 4.0 (то есть Windows XP), эти ошибки не исправляются для вашего пользователя .

По сути, эти исправленные ошибки теперь называются «скрытыми ошибками» (для разработчиков, которым все еще необходимо ориентироваться на .net 4.0.

Самое приятное то, что не имеет значения, используете ли вы VS 2010 или VS 2012. После установки .net 4.5 ошибки скрываются.

Подробнее см. В этом сообщении: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a/

Vaccano
источник
Извините, но это скрывает суть проблемы. Проблема существует только в том случае, если вы полагаетесь на свои тесты на машине разработки, чтобы узнать, когда ваше приложение работает. Если вы можете тестировать в среде, которую будут использовать ваши клиенты (а я думаю, что большинство разработчиков находятся в этом положении), то у вас нет этой проблемы. Если у вас есть вторая машина для тестирования, включая виртуальную машину, это не проблема.
Джон Сондерс
4
@JohnSaunders - У нас есть целый отдел QA, который тестирует нашу целевую платформу. Но многие исследования показали, что разные виды тестирования выявляют разные виды ошибок. То, что я ищу при отладке, - это не тот уровень ошибок, который собирается найти моя команда QA. Опять же, мои автоматизированные тесты не заметят всего того, что я заметил во время отладки. И, наконец, написание функции, которая зависит от ошибки, которую вы не можете исправить, стоит $ $$. Когда ошибка обнаружена, чем дальше от моей машины разработки, тем больше она стоит. (Особенно, если я «закончил» эту функцию.)
Vaccano
«Проблема существует только в том случае, если вы полагаетесь на то, что ваши тесты на вашей машине разработки говорят вам, когда ваше приложение работает» - Вы подразумеваете, что вы не тестируете свой код на своей машине разработки? - Это настоящая проблема. Специально для тех, кто об этом не знает. (И поскольку Microsoft не будет публично объявлять об этом, это очень много разработчиков.)
Vaccano
Тесты, которые я выполняю на своей машине разработки, не определяют, работает мой код или нет. Они только определяют, насколько вероятно, что отдел QA обнаружит мои ошибки в первые пять минут или нет. Я тестирую на своей машине, чтобы не смущаться. Это автоматизированные модульные тесты в сборках и настоящие тесты QA, которые определяют, доставляется ли мой код клиентам. Эти тесты будут включать тесты в среде, подобной среде клиентов. В данном случае это будут Windows XP и .NET 4.0.
Джон Сондерс,
Извините, но если у вас есть отдел контроля качества, то я вообще не вижу вашей проблемы. Я не могу себе представить, что .NET 4.5 исправляет столько ошибок .NET 4.0, что это будет стоить вам очень больших денег, если вы напишете код, зависящий от этих ошибок. Если вы думаете, что столкнетесь с этой проблемой, попробуйте как можно раньше и почаще тестировать на Windows XP и .NET 4.0. Наибольшему риску подвергаются разработчики, которые никогда не увидят ошибок.
Джон Сондерс
10

Я сильно пострадал от бета-версий VS, у меня никогда не было неприятных проблем с их удалением. Microsoft делает прекрасное программное обеспечение, но установщик, кажется, всегда остается самым последним, о чем заботятся. Проблемы, которые я видел, заключаются в том, что при удалении не удаляются компоненты, которые затем портят розничную версию и установщик, не рассчитывая на другие установленные продукты Microsoft и разрушая их конфигурацию.

Это еще далеко до бета-тестирования, не устанавливайте его на машину, которая вам нужна для выполнения своей работы. Что в значительной степени исключает установку VS2008. ВМ конечно нормально.

Ганс Пассан
источник
2
Я только что опубликовал кое-что на форумах [ social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/…, потому что кажется, что установка заменяет сборки .NET Framework 4.0 (я думал, что сошел с ума, но открылся System.Core в Reflector показал, что System.Runtime.CompilerServices.ExtensionAttribute отсутствует). Короче будьте осторожны там
Damian
@Damian: Это некоторая проблема, как и в случае с 3.0 и 3.5: по сути, оба были дополнительными функциями, основанными на среде выполнения 2.0, но оба они поставлялись вместе с пакетом обновления 2.0 (который можно было загрузить отдельно для установок только 2.0), который действительно изменился кое-что под капотом. Глядя на 4.0, это еще хуже: Microsoft просто незаметно отправила несколько новых версий через Центр обновления Windows - исходная версия 4.0.30319.1 была заменена на .225, .235 и .237 - каждая из них исправляет и вводит ошибки или, по крайней мере, другое поведение в конкретные области.
springy76
7

Вчера я установил RC и обнаружил следующее:

Это приводит к зависанию VS2010 при запуске модульных тестов (это можно обойти, используя 2012 или mstest в командной строке для запуска ваших модульных тестов)

Это приводит к тому, что VS2010 не может компилировать проекты C ++, что приводит к ошибке связи . Даже после удаления VS2012 RC эта проблема все еще сохраняется ... поэтому я настоятельно рекомендую не устанавливать ее прямо сейчас

Орион Эдвардс
источник
1
У меня была такая же проблема с запуском модульных тестов в VS 2010 после того, как я установил VS 2012 RC. Чтобы исправить это, удалите testimpactdata.sdf из корня вашего решения и включите Test Impact в настройках теста.
Сергей Сироткин
2
Я столкнулся с проблемой тестирования, которую вы описываете. Решение, которое я нашел, заключалось в обновлении до Visual Studio 2010 Service Pack 1. По-видимому, это проблема 2010 года, а не 2012 года, но это просто вызвано установкой кандидата на выпуск 2012 года. Вы сможете установить пакет обновления даже после установки VS 2012, и проблема все равно будет устранена. В наши дни я мало что делаю с C ++, поэтому не могу комментировать, исправлено ли это. VS 2010 SP1 можно найти здесь: microsoft.com/en-us/download/details.aspx?id=23691
rbwhitaker,
6

Итак, читая все ответы, все сводится к следующему:

  • После установки VS2012 .NET 4.5 перезапишет .NET 4.0.
  • Вы все еще можете использовать VS2010, но он будет компилироваться с .NET 4.5 (поскольку .NET 4.0 заменен).
  • Опасность: вы больше не можете безопасно развертывать свои проекты на машинах с .NET 4.0.
Дженни О'Рейли
источник
5

Да, можно, но всегда рекомендуется сначала установить более ранние версии. И если вы хотите открыть проект Visual Studio 2010 в VS 11, а затем снова вернуться к нему, убедитесь, что вы не используете новые функции Visual Studio 11.

Рейго Хайн
источник
2

Его можно установить параллельно, но это даже не бета-версия ..! Не ждите, что это действительно сработает!

Посмотрите на эту проблему, которая у нас возникла, и об этом сказал Дамиан в другом комментарии.

Собачьи уши
источник
2

Вчера делал, сегодня удалил ...

По-видимому, что-то пошло не так, потому что некоторые приложения, которые я создал до этого, начали выдавать странные ошибки, касающиеся «невозможно загрузить модуль бла-бла-бла ...», поэтому я удалил все, принудительно переустановил .NET Framework 4.0, и теперь все снова работает нормально!

Педро Ламас
источник
2

Это определенно может вызвать проблемы. Например:

В .NET 4.0 всякий раз, когда кто-то пытается сохранить значение перечисления в LINQ-2-Entities, jup, как вы уже догадались: ОШИБКА, когда у вас есть 4.0 БОЛЬШОЙ УСПЕХ при работе на машине с установленным 4.5 (да, даже если сборка нацелена на клиента 4.0 профиль!)

Так что будьте внимательны при использовании этой хорошей новой функции, которая вообще не имеет обратной совместимости.

Rvcl
источник
2

Он хорошо работает на 32-битной машине, устанавливая рядом, но иногда вы можете получить ошибку, но при переустановке или удалении предыдущей установки ее можно установить. Я сделал это в середине проекта, и это также не повлияло на предыдущую работу.

Чандрабхан Гурджар
источник
0

Как было сказано, официально можно, но это может вызвать проблемы.

Если вы хотите запустить Visual Studio 2012, я думаю, что самый безопасный способ - использовать бесплатный WMWare VMplayer и установить на нем Windows 8, а затем установить Visual Studio 2012 там. Вам нужно как минимум 4 ГБ ОЗУ, но лучше работает с 8 ГБ или более. В любом случае я этим занимаюсь.

Адам Мендоса
источник
Не могли бы вы уточнить, о каких проблемах говорите?
Джон Сондерс
0

Моя основная проблема заключалась в том, что после установки VS2012 RTM больше нельзя запускать модульные тесты из VS2010! Просто висит вечно. Даже не могу это остановить.

Так что пока я бы сказал, MS сделала это снова, бок о бок не работает.

Я думаю, это может быть связано с тем, что это установка VS2010 без применения SP1.

Ньетрас
источник
Не могли бы вы уточнить, какие «тесты VS2010» вы имеете в виду?
Джон Сондерс
У меня также есть эта проблема - попытка просмотреть результаты любых тестов в воспроизводимом зависании как в vs2010, так и в vs2013 (все последние исправления / обновления). Я жду от тебя лучшего, Майкрософт.
fusi
0

Хорошая новость в том, что при установке создается точка восстановления системы. Резервное копирование на внешний жесткий диск - это решение этой проблемы, пока не выйдет настоящая версия или вы не начнете проект с нуля.

MvcCmsJon
источник
0

Я заметил, что решения для веб-тестирования и нагрузочного тестирования перестают работать после установки VS2012. Сняли копии и обновили до 2012 года, и они работают нормально. Просто VS2010 больше не может инициировать тестовый прогон.

Большой Йен
источник
-1

Да, вы также можете легко открыть проект с 2012 по 2010 год без проблем. пока он все еще использует .net 4.0.

JGilmartin
источник