zoukankan      html  css  js  c++  java
  • 获取解决方案文件sln中所有的项目文件路径。

    进行每日编译架构需要,读取sln文件,包含的项目路径。写了一个简单的函数。只是针对vb.net的解决方案,vs2003版本:

    Function GetProjectPaths(ByVal sln As String) As System.Collections.Specialized.StringCollection
        If sln Is Nothing Then
            Throw New ArgumentNullException("没有指定解决方案。")
        End If

        If Not IO.File.Exists(sln) Then
            Throw New IO.FileNotFoundException(String.Format("解决方案  {0} 不存在。", sln))
        End If

        Dim file As String = sln
        Dim r As IO.StreamReader
        Dim sc As New System.Collections.Specialized.StringCollection

        Try
            r = New IO.StreamReader(file, System.Text.Encoding.Default)
            Dim line As String = r.ReadLine
            While Not line Is Nothing
                If line.StartsWith("Project(") Then
                    Dim strSplit As String = """, """
                    Dim starIndex As Integer = line.IndexOf(strSplit)
                    If starIndex <> -1 Then
                        Dim projectPath As String = line.Substring(starIndex + 4)
                        Dim endIndex As Integer = projectPath.IndexOf(strSplit)

                        '项目路径
                        projectPath = projectPath.Substring(0, endIndex)

                        Dim slnPath As String = IO.Path.GetDirectoryName(file)
                        IO.Directory.SetCurrentDirectory(slnPath)  '解决方案中存在的相对路径,偷懒做法。
                        projectPath = IO.Path.GetFullPath(projectPath)

                        sc.Add(projectPath)

                    End If
                End If
                line = r.ReadLine
            End While

        Catch ex As Exception
            Throw New System.Exception("获取项目文件路径发生错误。", ex)
        Finally
            If Not r Is Nothing Then
                r.Close()
            End If

        End Try

        Return sc

    End Function

  • 相关阅读:
    流量控制--2.传统的流量控制元素
    流量控制--1.概览
    Opentelemetry Collector的配置和使用
    高德全链路压测——精准控压的建设实践
    高德全链路压测——语料智能化演进之路
    业内首发车道级导航背后——详解高精定位技术演进与场景应用
    浅析云控平台画面传输的视频流方案
    关于卫星定位,你想知道的一切
    Pod容器中安装软件包
    面试应该怎么问问题?
  • 原文地址:https://www.cnblogs.com/zqonline/p/1456102.html
Copyright © 2011-2022 走看看