У меня есть решение в Visual Studio 2012 со 170 проектами C # в нем. Мне нужно перенацелить все проекты с .NET Framework 4.0 на 4.5.2.
Я предпочитаю позволить Visual Studio справиться с этим, войдя в свойства каждого проекта, изменив целевую структуру и позволив Visual Studio вносить любые необходимые изменения в файлы .csproj.
Я заметил, что эти изменения включают добавление нескольких новых тегов XML в .csproj, в зависимости от некоторых атрибутов текущего проекта.
Как я могу пакетно перенастроить все 170 проектов C #, не используя просто инструмент замены текста для замены целевого номера версии? Я хочу, чтобы Visual Studio внесла все необходимые изменения и дополнения в теги, и одна замена не допустит этого.
Ответы:
В документации MSDN « Руководство по переходу на .NET Framework 4.5 » и « Как настроить приложение для поддержки .NET Framework 4 или 4.5 » обсуждается только изменение проектов. Нет подробностей о применении изменений ко всему решению сразу, и я не видел в VS функции, которая его поддерживает.
Однако в галерее Visual Studio есть (хорошо оцененное) расширение Target Framework Migrator , которое поддерживает обновление до 4.5.2 (а также более новые версии **) и, похоже, сделает именно то, что вы хотите. Исходный код доступен на GitHub , если вам интересно.
Обратите внимание, что отсутствие такой функции может быть намеренным (а не просто упущением). Я просто предполагаю, но, возможно, MS рассчитывает, что будут обновлены только проекты, которым нужны новые Framework. FWIW, если вы в конечном итоге обновите некоторые проекты, которые используются совместно с другими решениями, эти решения могут не работать, пока они тоже не будут обновлены.
При этом, если вы находитесь в небольшом магазине с одним (или несколькими) решениями и хотите обновить все за один раз, то, возможно, вышеуказанный инструмент подойдет вам.
Если вы не можете заставить его работать с более новой версией .NET Framework, проверьте существующие PR и проблемы на предмет исправлений, но, возможно, вам придется применить их самостоятельно. Например, кто-то опубликовал исправление для .NET Framework v 4.7.1 . Надеюсь, они сольются, но я бы не стал задерживать дыхание.
Если кто-то еще видит ту же ошибку, что и Анас (в комментариях), вот проблема с GitHub, возникшая пару недель назад, и еще одна, возможно, связанная проблема с 2017 года. Если у вас такая же проблема, подумайте о том, чтобы увеличить их и добавить дополнительные сведения .
источник
Для решения .NET Framework мне помогло простое « Заменить в файлах »:
например : от .NET Framework 4.5.2 до .NET Framework 4.7.2
В файлах package.config замените все
к
В файлах * .csproj замените все
к
источник
Поскольку Target Framework Migrator не работает, я свернул собственный поиск / замену (с помощью git bash, он нормально работает в Windows); По сути, он изменяет v4.6.x на v4.7.2 , а затем конвертирует файлы обратно с использованием печально известного DOS CRLF:
источник
Update-Package -ReInstall
творит чудеса. Спасибо!Я создал себе простой инструмент для переноса версий целевой платформы для всего решения, поскольку расширение Target Framework Migrator не поддерживает Visual Studio 2017. Загрузите инструмент из моего репозитория GitHub https://github.com/Xpitfire/TargetFrameworkMigrator
Я знаю, что это не лучший способ, но у меня он сработал и, возможно, поможет кому-то другому.
источник
Target Framework Migrator очень полезен. По умолчанию это версия v4.7. Однако легко добавить поддержку версий 4.7.1, 4.7.2 и 4.8.
Найдите файл Frameworks.xml в папке C: \ Users {username} \ AppData \ Local \ Microsoft \ VisualStudio \ и отредактируйте, добавив следующие версии фреймворка:
После перезапуска Visual Studio вы увидите новые версии.
источник
источник