.net 阅读解决方案sln的所有csproj项目的参考文献列表(以编程方式)

.net 阅读解决方案sln的所有csproj项目的参考文献列表(以编程方式),.net,scripting,reference,projects-and-solutions,csproj,.net,Scripting,Reference,Projects And Solutions,Csproj,我有解决方案sln,它有许多csproj项目 有人知道如何以编程方式读取sln文件VS2008中所有csproj项目的引用列表吗 csproj文件只是XML文件。为此,可以使用.NET framework中的XDocument。我已经为VS2010做过了,但是在VS2008中,标签几乎是一样的 例如,对于VS2010,您必须验证标记和命名空间: XElement projectNode = XElement.Load(fileName); XNamespace ns = "http://sche

我有解决方案sln,它有许多csproj项目


有人知道如何以编程方式读取sln文件VS2008中所有csproj项目的引用列表吗

csproj文件只是XML文件。为此,可以使用.NET framework中的XDocument。我已经为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标记。希望这会有所帮助。

不确定它是否适合您的需要,但一旦将解决方案加载到Visual Studio中,您就可以使用CodeModel API,使用简单的加载项甚至宏轻松检查它:

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

太好了,另一个参考:;我如何知道解决方案sln的csproj文件项目?有API、SDK、脚本代码吗?有任何示例代码吗?解决方案文件不是xml,因此无法使用所述方法对其进行解析。使用正则表达式时,您可以轻松地解析项目的sln文件,而不需要API。这是一个不同的问题(尽管你可以在这里问),请接受我对你原来问题的回答,如果它帮了你的忙。我可以在Team Foundation Server中共享VS2008的自定义宏吗?我的公司有许多与TFS合作的开发人员。