Начиная с Visual Studio 2013, Microsoft.Build.dll предоставляет объект SolutionFile с некоторыми очень удобными функциями.
Вот пример использования версии v14.0 для перечисления относительного пути всех проектов в порядке их появления в решении.
Add-Type -Path (${env:ProgramFiles(x86)} + '\Reference Assemblies\Microsoft\MSBuild\v14.0\Microsoft.Build.dll')
$solutionFile = '<FULL PATH TO SOLUTION FILE>'
$solution = [Microsoft.Build.Construction.SolutionFile] $solutionFile
($solution.ProjectsInOrder | Where-Object {$_.ProjectType -eq 'KnownToBeMSBuildFormat'}).RelativePath
Существует множество других свойств объекта проекта (ProjectName, AbsolutePath, конфигурации и т. Д.), Которые могут быть полезны. В приведенном выше примере я использовал ProjectType для фильтрации папок решений.