获取解决方案文件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

转载于:https://www.cnblogs.com/zqonline/archive/2009/05/13/1456102.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值