2016-08-16 4 views
1

У меня есть a project, который предназначен для обоих .Net 2.0 и .Net 4.5. Я построил + опубликовал его успешно в Visual Studio 2013. Конфигурация .Net в файле .csproj все еще говоритНевозможно настроить таргетинг .Net 2.0 в Visual Studio 2015

<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>

Тем не менее, когда я открываю проект в VS 2015, он нацелен на .Net 4.5.

У меня есть 2.0, доступное в Target Framework выпадающего списка:

Target Framework Dropdown

, когда я нажимаю».Net Framework 2.0" это дает мне всплывающее окно, говоря

Are you sure?

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

Изменение целевой структуры требует ручной модификации файлов проекта для сборки.

Вы уверены, что хотите изменить Целевую структуру для этого проекта?

Когда я нажимаю «да», целевая структура возвращается к 4.5, и ничего больше не происходит.

  • Я пробовал открыть проект и ВС, не повезло.
  • Я попытался запустить .NET 3.5 инсталлятор (который, по-видимому включает в себя 2.0), но он говорит, что нужно использовать «Turn функций Windows вкл/выкл»
    • Я обеспечили .Net 3.5 Функция Windows включена.

А теперь я из идей. кто-нибудь еще сталкивался с этим?

Запуск Windows 7.

+0

Похоже, вы редактировали.csproj файл с текстовым редактором, и он поврежден. Элемент TargetFrameworkVersion не может зависеть от имени конфигурации и платформы. Заметьте, что вы отключены. Вы можете получить его с помощью MSBuild в порядке, но вы, однако, путаете начинку из среды IDE. Это не было сделано, чтобы сделать вашу жизнь более убогой, основные вещи, такие как IntelliSense, не могут работать должным образом, если они не знают цель. Поразительная проблема в VS2010 с профилем клиента btw. Вам придется пересмотреть свой подход. –

+0

@HansPassant, у меня есть проект VS2013 с различными конфигурациями сборки для разных целевых фреймворков. Вы говорите, что это не поддерживается в VS2015? (Я понимаю, что он не поддерживается в графическом интерфейсе) – adrianm

+0

Он не поддерживается в * любой версии VS. Это наиболее очевидно, когда вы видите, что происходит, когда вы меняете цель в среде IDE, это большой массивный сброс IDE на работе. Вы не получите этот сброс при изменении выбранной конфигурации или платформы. Сколько вещей сломается, когда вы сделаете это, непредсказуемо, IntelliSense - очевидная жертва. При использовании встроенных дизайнеров он становится намного более неприятным с очень хорошо скрытым повреждением, в частности, может быть очень сложно диагностировать повреждение файла .resx. –

ответ

0

Как упоминает Ханс Пассант в комментариях, я, по-видимому (?) Отредактировал .csproj, чтобы использовать разные структуры для разных конфигураций. I клятва это не вызвало никаких проблем в VS 2013.

Но в любом случае, я проверил с помощью ILSpy, что генерируемая .dll является .Net 2.0, хотя в выпадающем списке указано 4.5. Итак, я думаю, все хорошо, что хорошо заканчивается?

0

В случае .NET Framework 2.0 поврежден, использовать .NET Framework инструмент проверки установки: https://blogs.msdn.microsoft.com/astebner/2013/11/06/net-framework-setup-verification-tool-and-cleanup-tool-now-support-net-framework-4-5-1/ для проверки и, как только он нашел какой-либо поврежден, вы можете использовать .NET Framework Ремонт Инструмент: https://www.microsoft.com/en-us/download/details.aspx?id=30135 для его ремонта.

Или в разделе «Включение или выключение функций Windows» снимите флажок .NET Framework 3.5 (включая .NET 2.0 и 3.0), а затем проверьте его.