Umesh AP Ответов: 5

Как найти .NET версию всех проектов в решении


Всем Привет,
У меня уже есть одно приложение .net, которое содержит более 50 различных проектов. Я хочу знать, какая версия .net используется этими проектами. На самом деле все проекты разрабатываются в .net версии 3.5. теперь я конвертирую их в .net версии 4.5. поэтому вместо того, чтобы проверять все проекты версии один за другим, я хочу проверить все сразу. Есть ли какой-нибудь способ проверить это?
Заранее спасибо.

Что я уже пробовал:

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

Afzaal Ahmad Zeeshan

Проверить, а потом что делать? Меняете версию с 3.5 на 4.5 одну за другой?

Сколько проектов есть в этом единственном решении?

5 Ответов

Рейтинг:
25

CHill60

В файле csProj или vbProj для каждого проекта будет строка, которая выглядит следующим образом

<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
Вы можете использовать текстовый поиск в инструментах файлов (например, тот, который поставляется вместе с бесплатным редактором блокнот++[^] для поиска фразы TargetFrameworkVersion чтобы получить список версий в проекте


Рейтинг:
1

Daffy the Bear

Короткий сценарий PowerShell:

$Solutions folder = [папка решения]
Получить-ChildItem $solutionFolder -включать *.csproj файл -рекурсия -силу | по каждому элементу-объекта {
[xml]$projectXml = (Get-Content ($_))
$пространство имен=новый-системный объект.В формате XML.XmlNamespaceManager($projectXml.Онкометаболитов)
$пространство имен.AddNamespace("nsp", $projectXml.Функцию documentelement.NamespaceURI)

$dotnetVersionNode = $projectXml.SelectSingleNode("//nsp:TargetFrameworkVersion", $namespace)
if ($dotnetVersionNode -eq $null) {
$dotnetVersionNode = $projectXml.SelectSingleNode("//nsp:TargetFramework", $namespace)
}
Write-Host $_ : $dotnetVersionNode.InnerXml
}

Примечание: этот сценарий также будет определять целевые версии фреймворка для проектов .Net Core


Dave Kreskowiak

Извините, я разместил это не в том окне...

Рейтинг:
1

jimmson

Ты недостаточно усердно гуглил.

Это то, что вам нужно: Target Framework Migrator - Visual Studio Marketplace[^]


Umesh AP

@jimmson2.4K - Спасибо за ваше ценное решение. Я обязательно буду использовать Target Framework Migrator в будущем.

Рейтинг:
1

mellevsen

Старый вопрос, но для тех, кто здесь оказался...

В командной строке Windows:
1. измените каталог на корневой каталог вашего решения.
2. введите следующую команду и нажмите клавишу ENTER:

findstr /s "TargetFrameworkVersion" *.csproj


При этом отображается строка версии из каждого файла проекта. Пример приведен для проектов C#, поэтому для поиска проектов VB замените "csproj" на "vsproj".


Рейтинг:
0

OriginalGriff

Один из способов-написать быстрое приложение.
Каждый проект в решении находится в своей собственной папке под основной папкой решения, и каждая папка проекта содержит файл ".CSPROJ" или ".VBPROJ".
Этот файл проекта является XML-дескриптором проекта и содержит узел PropertyGroup/TargetFrameworkVersion.
Если вы сканируете каждую папку, читаете каждый файл проекта, вы можете выбрать (или изменить) версию фреймворка для всех проектов в решении. Обратите внимание, что изменение версии фреймворка может привести к ошибкам компилятора, которые вам нужно будет исправить, но вы, вероятно, уже знаете об этом!