У вас есть пробел в имени пользователя? Если так, то это проблема. Измените рабочий каталог в OMEdit на место без пробелов или специальных символов. Через Сервис-> Параметры.
И файлы проекта и файлы решения являются текстовыми файлами. Файлы проекта не знают о своем решении, таким образом, мы должны будем посмотреть в решениях для их проектов.
Запись проекта в файле решения похожа на это:
Project("{9AC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ProjectName", "ProjectDirectory\ProjectFileName.vcproj","{9A95F635-B74F-4640-BBCF-E324D0972CA9}"
EndProject
Таким образом, Вы видите, мы можем захватить название проекта и относительный путь в файл проекта.
Используя Ваш любимый язык сценариев Вы могли сделать что-то как следующее. (Пример в рубине)
require 'find'
def project_name(string)
string =~ /= "(.+?)"/
$1
end
#the script doesn't use this method but you may want it
def project_path(string)
string =~ /, "(.+?)"/
$1
end
def find_projects(path)
puts "#{path} contains the following projects:"
open(path).read.gsub(/Project\(.+?EndProject/m) do |match|
puts project_name(match)
end
puts ""
end
#change File.dirname(__FILE__)) to the name of the directory you want to search.
Find.find(File.dirname(__FILE__)) do |path|
if FileTest.directory?(path)
if File.basename(path) =~ /^\../ # Directory name starts with .
Find.prune # Don't look any further into this directory.
else
next
end
elsif path =~ /\.sln$/
find_projects(path)
end
end
В дополнение к сообщению Gordon Wilson Вы могли попытаться создать то же самое в C# и использовать QuickGraph и GraphViz для создания схемы, показывающей то же самое.
QuickGraph может использоваться, чтобы создать структуру графика в памяти и произвести точечный файл, из которого Graphviz может загрузить и создать симпатичную схему. Документы об обоих сайтах должны дать Вам достаточно информации для ухода.
** редактирование ** Видит здесь для маленького параллельного проекта, который я запустил, который делает часть из того, что Вы хотели. Вы могли, вероятно, добавить что-либо, в чем Вы нуждаетесь за несколько часов самое большее. Не стесняйтесь брать его, и использовать его однако Вы хотите, просто оставляете меня комментарием, если Вам действительно нравится.
Простой Python (жемчуг?) сценарий с несколькими хорошо помещает регулярные выражения.
Каждый проект имеет свой собственный GUID. нахождение отображения является просто вопросом нахождения ГУИДОВ проектов и поиска их в файлах решения.