Visual Studio:打印解决方案中的所有源文件?

时间:2009-03-25 22:24:14

标签: visual-studio printing

有没有办法一次打印解决方案中的所有(* .cs)文件,也就是说,没有点击每个文件然后点击打印?

4 个答案:

答案 0 :(得分:10)

根据我从a similar question asked elsewhere收集的内容,此“功能”不会构建到Visual Studio中。

然而它看起来像MSDN has a macro you can use to print all of your code;也许你可以使用它,或类似的东西:

Sub PrintItemsInSelectedProject()
    Dim proj As Project
    Dim objProj As Object()

    objProj = DTE.ActiveSolutionProjects
    If objProj.Length = 0 Then
        Exit Sub
    End If
    proj = DTE.ActiveSolutionProjects(0)
    PrintItemsInSelectedProject(proj.ProjectItems)
End Sub

Private Sub PrintItemsInSelectedProject( _
    ByVal projitems As ProjectItems)
    Dim projitem As ProjectItem

    For Each projitem In projitems
        If (IsPrintableFile(projitem) = True) Then
            If (projitem.IsOpen( _
                    EnvDTE.Constants.vsViewKindTextView)) Then
                projitem.Document.PrintOut()
            Else
                Dim doc As Document
                doc = projitem.Open( _
                    EnvDTE.Constants.vsViewKindTextView).Document
                doc.PrintOut()
                doc.Close(vsSaveChanges.vsSaveChangesNo)
            End If
        End If
        PrintItemsInSelectedProject(projitem.ProjectItems)
    Next
End Sub

Function IsPrintableFile( _
        ByVal projItem As ProjectItem) As Boolean
    Dim fileName As String
    Dim extensions As _
        New System.Collections.Specialized.StringCollection
    ' If you add a file to your project that is of 
    ' a type that can be printed, 
    ' then add the extension of that 
    ' file type to this list.
    Dim exts As String() = {".cs", ".vb", _
        ".aspx", ".xsd", ".xml", ".xslt", _
        ".config", ".htm", ".html", ".css", _
        ".js", ".vbs", ".wsf", ".txt", ".cpp", _
        ".c", ".h", ".idl", ".def", ".rgs", ".rc"}

    extensions.AddRange(exts)
    fileName = projItem.FileNames(1)
    Return extensions.Contains( _
        System.IO.Path.GetExtension(fileName).ToLower())
End Function

答案 1 :(得分:7)

暂且不谈树抱抱的有趣评论,让我们假设你想要将Visual Studio解决方案打印成PDF(我们不会问你以后用它做什么)。

对于使用VisualStudio的人来说,有一个非常好的程序曾经被出售但现在可以免费下载,名为PrettyCode.Print for .NET 2.0。可以下载here(公司retired产品)。

它读入VisualStudio项目(与VS2005,VS2008和VS2010配合使用),然后打印一系列带有各种打印选项的文件。它做得相当不错。

答案 2 :(得分:1)

您可以在:http://pan.baidu.com/wap/shareview?&shareid=3968547697&uk=286220058&dir=%2FSoftz&page=1&num=20&fsid=1117386981714891&third=0下载适用于.NET 2.0的PrettyCode.Print(VS2008和VS2005) 在我的计算机上使用Visual Studio 2013可以正常工作。

答案 3 :(得分:0)

使用powershell打印所有* .cs文件。 首先获取所有文件的列表 $ files = Get-Childitem-路径C:\ Users \ David \ source \ repos \ ConsoleApp-排除AssemblyInfo.cs,Program.cs-包括* .cs-递归

当您满意清单时

foreach($ file中的$ file){获取内容$ file.FullName | Out-printer}