2012-06-20 4 views
6

.NET 4.5 является обновлением на месте и, следовательно, заменяет .NET 4.0. Следовательно, когда я устанавливаю .NET 4.5 с Visual Studio 2012, я больше не могу разрабатывать приложения для .NET 4.0.Разработка для .NET 4.0 (Windows XP) с Visual Studio 2012

В .NET 4.5 не поддерживается в Windows XP, как я могу сохранить мои существующие .NET 4.0 приложения, которые по-прежнему должны работать под Windows XP после установки Visual Studio 2012?

До сих пор я мог всегда использовать приложения .NET для каждой версии, даже .NET 1.1, до тех пор, пока был установлен VS2003. У меня нет проблем с тем, что Microsoft не поддерживает .NET 4.5 на XP, я думаю, что все в порядке, чтобы отрезать старые вещи. Но поскольку у нас есть клиенты, использующие Windows XP, мы должны иметь возможность создавать программы .NET 4.0 одновременно с .NET 4.5.

EDIT:

Я просто был мой первый вопрос о несовместимости: Я установил VS 2012 на Windows Server 2012. Я создал проект таргетинга .NET 4.0. В blend 4.0 я создаю копию контрольного шаблона флажка. Сгенерированный шаблон содержит ссылки на цвета, доступные только в .NET 4.5. Решение больше не может быть скомпилировано. Однако тот же случай отлично работает на моей установке Windows 7.

Я предполагаю, что установка .NET 4.5 заменила шаблоны управления для моих стандартных элементов управления. Поэтому я больше не могу создавать копии.

+0

VS2012 RC не поддерживает XP. –

+1

@ HansPassant: Спасибо, я это знаю. Но смогу ли я разрабатывать приложения с VS2010 для Windows XP на одном компьютере? Или мне нужно отделить ПК? – slfan

ответ

2

У меня возникли серьезные проблемы с разработкой .NET-программ для 4.0 на компьютерах с установленным 4.5. Например, одна из проблем заключается в том, что если вы создаете WPF и имеете собственный сеттер в свойстве - если вы привязываетесь к этому свойству с помощью Mode = TwoWay, вы не получите исключения, если вы разрабатываете .NET. 4,5!Вы должны получить исключение, и это произойдет, если вы находитесь в среде с установленным .NET 4.0 (хотя вы разрабатываете целевой 4.0 в Visual Studio). Теперь, очевидно, вы не должны иметь Mode = TwoWay и частный сеттер, но, возможно, вы изначально предназначались для того, чтобы свойство было единственным OneWay. Дело в том, что это всего лишь один из многих примеров проблем, которые просто подметаются под ковер на 4.5 и заставили меня вернуться к разработке в Windows 7 с Visual Studio 2010 и .NET 4.0 для чего-либо, ориентированного на .NET 4.0.

+0

Интересный момент, пока я не нашел его. Получаете ли вы эту ошибку при компиляции с .NET 4.5 или только при компиляции с .NET 4.0? – slfan

+0

Только при компиляции с .NET 4.0 и даже тогда он прекрасно работает на любой машине, на которой установлен .NET 4.5. – Jordan

+0

Еще одна ошибка, с которой я недавно столкнулся, описан здесь: http://stackoverflow.com/questions/4659257/how-can-synchronizationcontext-current-of-the-main-thread-become-null-in-a -windo – Jordan

1

БОЛЬШОЙ РЕДАКТОР: Мы должны подождать, пока Microsoft объявит окончательное решение, пока неясно, только выводы.

Но, я думаю, что Microsoft не откажется от поддержки XP и Vista, что легко, похоже, что проблема уменьшения поддержки - это просто для ускорения, чтобы показать ее разработчикам.

Кроме того, если это произойдет, и Microsoft остановила поддержку XP и Vista, то у вас есть виртуальная машина как отличный выбор!

С наилучшими пожеланиями

+0

Вы прочитали мой вопрос? Я говорю о .NET 4.5, как только VS2012 будет выпущен. .NET 4.0 будет заменен на 4.5. – slfan

+0

О! Сожалею! Я понял это неправильно. – IWIH

2

В то же время я нашел большой блог Scot Hanselman, который отвечает на мои проблемы: http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx

.NET 4.5 является в место обновлением и заменяет .NET 4.0 CLR, но все же можно будет создавать приложения .NET 4.0 с Visual Studio 2012.

EDIT: Теперь я установил окончательный выпуск VS2012. Мои существующие проекты .NET 4.0 компилируются и запускаются, никаких проблем пока нет. Единственным недостатком является то, что он больше не поддерживает Windows Installer Projects. Вы можете переключаться вперед и назад между VS2010 и VS2012.

4

По иронии судьбы, кажется Mono поддерживает much of the .NET 4.5 functionality и что он может быть установлен на Windows XP.

Если вам нужна C# 5.0 async, и ваш клиент отказывается обновлять ее ОС, это может быть вариант.

+2

хорошо пункт. Но я хочу написать приложение WPF, которое не поддерживается в Mono. BTW: У меня была первая проблема несовместимости сейчас, я отредактирую свой вопрос. – slfan