Чтение списка литературы из всего проекта csproj решения sln (программно) - PullRequest
5 голосов
/ 24 сентября 2010

У меня есть решение sln, у которого есть много проектов csproj.

Кто-нибудь знает способ программно прочитать список ссылок всех проектов csproj в VS2008 файла SLN?

Ответы [ 2 ]

3 голосов
/ 24 сентября 2010

Файлы csproj - это просто файлы XML.Для этого вы можете использовать XDocument из .NET Framework.Я сделал это для VS2010, но в VS2008 теги почти одинаковы.

Пример для VS2010, вы должны проверить теги и пространство имен:

XElement projectNode = XElement.Load(fileName);
XNamespace ns = "http://schemas.microsoft.com/developer/msbuild/2003";
var referenceNodes = projectNode.Descendants(ns + "ItemGroup").Descendants(ns + "Reference")

Вы также можете захотетьпроверьте тег ProjectReference.Надеюсь, это поможет.

1 голос
/ 28 сентября 2010

Не уверен, что оно соответствует вашим потребностям, но как только решение загружено в Visual Studio, вы можете легко проверить его с помощью API CodeModel, используя простой надстройку или даже макрос:

Imports EnvDTE
Imports VSLangProj

Public Module Module1
    Public Sub ShowAllReferences()
        Dim sol As Solution = DTE.Solution
        For i As Integer = 1 To sol.Projects.Count
            Dim proj As Project = sol.Projects.Item(i)
            Dim vsProj As VSProject = DirectCast(proj.Object, VSProject)

            For Each reference As Reference In vsProj.References
                MsgBox(reference.Description)
            Next
        Next
    End Sub

End Module
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...