Pertanyaan Membaca daftar Referensi dari Semua proyek csproj dari solusi SLN (secara terprogram)


Saya punya solusi SLN, yang memiliki banyak proyek csproj.

ada yang tahu cara untuk pemrograman membaca daftar Referensi dari semua proyek csproj dalam file sln VS2008?


5
2017-09-24 12:39


asal


Jawaban:


file csproj hanya file XML. Anda dapat menggunakan XDocument dari .NET framework untuk ini. Saya telah melakukannya untuk VS2010, tetapi pada VS2008 tag-tagnya hampir sama.

Contoh untuk VS2010, Anda harus memverifikasi tag dan namespace:

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

Anda mungkin juga ingin memeriksa tag ProjectReference. Semoga itu membantu.


3
2017-09-24 12:49



Tidak yakin apakah itu sesuai dengan kebutuhan Anda, tetapi setelah solusi dimuat ke dalam Visual Studio Anda dapat dengan mudah memeriksanya menggunakan API CodeModel, menggunakan addin sederhana atau bahkan makro:

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

1
2017-09-28 04:45