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

  • 相关阅读:
    OS程序开发引用的第三方库之间出现冲突的处理方法
    ios的指令集(转)
    查看lib库支持的IOS指令集
    Audio Session Programming Guide
    Swift中文教程
    NSString 与 char * 互转
    id 与void *类型的转换(转)
    versions使用(转)
    superview透明问题
    Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区别
  • 原文地址:https://www.cnblogs.com/zqonline/p/1456102.html
Copyright © 2011-2022 走看看