Pget .NET Command Line toolbox and Interface for NuGet.Core and F#

Table of Contents

1 Pget.exe - Package Get

1.1 Overview

Pget.exe is a .NET command line toolbox inspired by git and BusyBox that exposes .NET api through intuitive commands and a high level API. It provides commands to install, query and expose NuGet packages, explore .NuGet pacakge archives, explore .NET assemblies files or in GAC - Global Assembly files, generate library or assembly documentation with XML comments and query assemblies in GAC. In addition to that it provides tools for generate GUID and query XML.

Objective:

  • Provide NuGet.Core.dll integration with external tools, text editors like Emacs and VIM and also command line integration with NuGet API.
  • Expose as much as possible of .NET API through command line.
  • Make .NET command line friendly tools
  • Create tools to make development easier in Unix-like OS like Linux, OSX and FreeBSD. Inspired by busybox it provides many command line tools in a single self-contained executable.

WHY pget ?

Pget was created because existing command line tools doesn't have all functionality provided by Visual Studio and Package Manager Console like display package metadata, search packages in NuGet repository, display packages' metadata from local repository or project repository ./packages and show Nuget package file metadata and files. Pget also provides compeling features to explore and browse .NET assemblies and xml.

Feature

  • Search packages in Nuget repository
  • Install and query NuGet packages
  • Display all assembly references in a repository
  • Generate assembly references from all repository or single package for F# scripts.
  • Show packages' metadata like description, summary, web site, open package web site and so on.
  • Inspect .NET assemblies *.exe, *.dll or assemblies in GAC - Global Assembly Cache.
    • Inspect .NET types, methods, interfaces
    • Show .NET assemblies metadata
    • Show .NET referenced assemblies
    • Show assembly resources
    • Show namespaces in assembly
    • Show classes in assembly
    • Show class methods
    • Show type information with xml comments like summary, methods, fields, constructors and properties.
    • Generate assembly documentation in org-mode markdown and extract xml comments from library (*.dll) xml files.
  • Show NuGet packages *.nupkg file metadata.
  • Get packages' assembly references from local repository and project repository (./packages) for F# scripts.
  • Query XML, show xml namespace, query xml using xpath, show xml tag structure. It is useful test xml data extraction with x-path expressions and XML tree navigation and ensure that it works.

Repository:

1.2 Get binary release

The binary releases are published to orphan-branch build.

Manual download

Automatic Download

~/Downloads $ curl -O -L https://github.com/caiorss/pget/raw/build/pget.exe
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   127  100   127    0     0    169      0 --:--:-- --:--:-- --:--:--   169
100 2143k  100 2143k    0     0   257k      0  0:00:08  0:00:08 --:--:--  529k
~/Downloads $


~/Downloads $ /usr/bin/chmod +x pget.exe

~/Downloads $ ./pget.exe -v 

    Pget - Package Get - Version 1.0 
    Copyright (C) 2016 Caio Rodrigues

or

cd ~/bin 
curl -O -L https://github.com/caiorss/pget/raw/build/pget.exe
/usr/bin/chmod +x pget.exe
./pget.exe -v

1.3 Build instructions

1.3.1 Build with Makefile

Run the command $ make exe. It assumes that fsc - the F# compiler and nuget.exe are in the $PATH variable. It builds the standlone app pget.exe with all dependencies static linked and also FSharp.Core (F# runtime) static linked.

$ make exe
fsc src/Pget.fs src/PgetCmd.fsx --out:bin/pget.exe \
--target:exe \
    --platform:anycpu \
    -r:packages/NuGet.Core.2.12.0/lib/net40-Client/NuGet.Core.dll \
-r:packages/Microsoft.Web.Xdt.2.1.1/lib/net40/Microsoft.Web.XmlTransform.dll \
--staticlink:NuGet.Core \
--standalone
F# Compiler for F# 4.1
Freely distributed under the Apache 2.0 Open Source License

Testing:

$ file bin/pget.exe
bin/pget.exe: PE32 executable (console) Intel 80386 Mono/.Net assembly, for MS Windows

$ bin/pget.exe --version

 Pget - Package Get - Version 1.3.1 
 2016 Public Domain Software
 Repository - https://github.com/caiorss/pget

1.3.2 Build with Xbuild or Msbuild

Msbuild

  • $ msbuild pget-exe.fsproj /p:Configuration=Release

Xbuild

  • $ xbuild pget-exe.fsproj /p:Configuration=Release
$ cd obj/Release && ./Pget.exe -v

 Pget - Package Get - Version 1.3.1 
 2016 Public Domain Software
 Repository - https://github.com/caiorss/pget

1.4 Project Files

  • src/ - Source code *.fs files
  • xml/ - Sample xml files to test pget.exe XML commands.
  • pget-exe.fsproj - Fsproj file to build pget.exe utility.
  • pget-lib.fsproj - Fsproj file to build pget.dll library.

1.5 Commands

1.5.1 Print Version   help

  • $ pget.exe --version or $ pget.exe -v

Example:

$ mono obj/Debug/pget.exe --version

 Pget - Package Get - Version 2.5.0.0 
 2016 Public Domain Software
 Repository - https://github.com/caiorss/pget

1.5.2 Print help   help

  • $ pget.exe

Example:

$ mono obj/Debug/pget.exe 
Pget - Package Get - Enhanced command line interface to NuGet.Core

  pget.exe repo                                Show help for repo commands.
  pget.exe nuget                               Show help for nuget related commands                           
  pget.exe asm                                 Show help for assembly related commands.
  pget.exe nupkg                               Show help for Nuget packages related commands.
  pget.exe xml                                 Show help for xml related commands

  --version | -v                               Show version
  --help    | -h                               Show help
  --doc                                        Open online documentation.                          



  List Repository

    repo --list                                 List all packages in current repository ./package
    repo [path] --list                          List all package in [path] repository.

  Show repository 

    repo --show                                 Show all packages in current ./packages repository
    repo [path] --show                          Show all packages in [path] repository.

  Show package metadata

    repo --show  [pack]                         Show the package [pack] in ./packages directory
    repo [path] --show [pack]                   Show the package [pack] in [repo] directory.

  Show package files 

    repo --files [pack]                    Show content files of package [pack] in ./packages
    repo [path] --files [pack]             Show content files of package [pack] in [repo]

  Install package to repository  

    repo --install [pack]                       Install the latest version of package [pack] to ./packages
    repo --install [pack] [ver]                 Install the version [ver] of package [pack]
    repo [path] --install [pack]                Install the latest version of package [pack] to a repository [path] i.e: ~/nuget
    repo [path] --install [pack] [ver]          Install the version [ver] of package [pack] to a repository [path]


  Install a list of packages passed as argument
    repo --install-list FParsec NuGet.Core-2.0.0               Install those packages to ./packages
    repo /tmp/repo --install-list FParsec NuGet.Core-2.0.0     Install those packages to /tmp/repository

  Install a list of packages listed in a file

    repo --install-from-file                    Install all packages listed in the file ./packages.list to ./packages directory.
    repo --install-from-file [file]             Install all packages listed in the file ./packages.list to ./packages directory.
    repo [path] --install-from-file [file]      Install all packages listed in the file [file] to [path]


  Open package project URL or Licence URL

    repo --url [pack]                           Browse project URL of a package [pack] in ./packages.
    repo --license [pack]                       Browse licence URL of a package [pack] in ./packages.
    repo [path] --url [pack]                    Browse project URL of a package [pack] in [path]
    repo [path] --license [pack]                Browse licence URL of a package [pack] in [path]

  Show references for F# *.fsx scripts:        [frm]:  .NET Framework  net40 | net45   

    repo --ref [frm]                            Show all assembly references from current ./packages.
    repo --ref  --pack [pack]                   Show all assembly references from a package [pack] at ./packages.              
    repo [path] --ref [frm]                     Show all assembly references from current [repo] directory.
    repo [path] --ref [frm] [pack]              Show all assembly references from a package at [repo] directory        


  Nuget commands:

    nuget --search [package]                    Search a package by name.  
    nuget --show   [package]                    Show package information (metadata).
    nuget --open                                Open NuGet web site - https://www.nuget.org       


  Nupkg Files:

    nupkg --show  [file]                        Show metadata of a *.nupkg file
    nupkg --files [file]                        Show files in nupkg [file]        


  Assembly files: *.exe or *.dll

    asm --info [file]                                    Show all assembly attributes from an assembly [file] or GAC.
    asm --refs [file]                                    Show all assembly references from an assembly [file] or GAC.
    asm --resources  [file]                              Show resources from an assembly file.
    asm --namespace|-ns [file]                           Show all exported namespaces.
    asm --namespace|-ns [file] [nspace]                  Show all types within an exported namespace from an assembly [file].

    asm --type [file]                                    Show all types exported by an assembly [file] or assembly in GAC.
    asm --type [file] [type]                             Show information about [type] exported by assembly [file] or GAC.

    asm --type-info [type]                               Try to find a type and show its information.

    asm --search-method [file] [type] [method]           Search and display all methods of type [type] which contains [method].


    asm --interface [file]                               Show all interfaces exported by assembly [file]. 
    asm --abstract  [file]                               Show all abstract classes exported by assembly [file].

    asm --class  [file]                                  Show all classes exported by assembly [file].
    asm --classn [file]                                  Show all non-abstract classes exported by assembly [file]

    asm --docgen [file]                                  Print all types documentation on screen
    asm --docgen [file] [output-file]                    Export all types documentation to org-mode file.


  XML query commands.

    xml --show [xmluri]            Show formatted xml human-readable output from uri or file.
    xml --show [xmluri] [file]     Export [xmluri] (file or url) to a xml human-readable file.

    xml --struct [xmluri]          Show xml structure - tags hierarchy
    xml --struct [xmluri] attr     Show xml structure tags hierarchy with attributes names.
    xml --struct [xmluri] ns       Show xml structure tags hierarchy with namespaces


    xml -ns                                  Show all XML namespaces
    xml --namespace                          Show all XML namespaces


    xml --xvalue [xpath] [xmluri]                 Query xml nodes using xpath and show its values.
    xml --xtext  [xpath] [xmluri]                 Query xml nodes using xpath and show its texts.
    xml --xtext --nons [xpath] [xmluri]           Query xml nodes using xpath and show its texts ignoring namespaces.
    xml --xattr  [xpath] [attr] [xmluri]          Query xml nodes using xpath and show the values of a node attribute.
    xml --xattr  --nons [xpath] [attr] [xmluri]   Similar to command above but ignore namespaces.



  Fsproj - Helpers for fsproj files.

    fsproj --ref [frm]                           Generate include references tags from all packages in ./packages    


  Open pget online documentation:  https://caiorss.github.io/pget

    --doc 

  Show system information

    --system 

  Generate Guid - Globally Unique Identifier 

    --guid 

  --------------------------------------------

  Command abbreviations:

    --install            -i
    --install-from-file  -if
    --install-list       -il
    --help               -h
    --version            -v
    --ver                -v
    --list               -l
    --search             -s
    --show               -sh


 Pget - Package Get - Version 2.5.0.0 
 2016 Public Domain Software
 Repository - https://github.com/caiorss/pget

1.5.3 Local Repository

1.5.3.1 Show repository commands help   help
  • $ pget.exe repo

Example:

$ bin/pget.exe repo

  List Repository

    repo --list                                 List all packages in current repository ./package
    repo [path] --list                          List all package in [path] repository.

  Show repository 

    repo --show                                 Show all packages in current ./packages repository
    repo [path] --show                          Show all packages in [path] repository.

  Show package metadata

    repo --show  [pack]                         Show the package [pack] in ./packages directory
    repo [path] --show [pack]                   Show the package [pack] in [repo] directory.

  Show package files 

    repo --files [pack]                    Show content files of package [pack] in ./packages
    repo [path] --files [pack]             Show content files of package [pack] in [repo]

  Install package to repository  

    repo --install [pack]                       Install the latest version of package [pack] to ./packages
    repo --install [pack] [ver]                 Install the version [ver] of package [pack]
    repo [path] --install [pack]                Install the latest version of package [pack] to a repository [path] i.e: ~/nuget
    repo [path] --install [pack] [ver]          Install the version [ver] of package [pack] to a repository [path]


  Install a list of packages passed as argument
    repo --install-list FParsec NuGet.Core-2.0.0               Install those packages to ./packages
    repo /tmp/repo --install-list FParsec NuGet.Core-2.0.0     Install those packages to /tmp/repository

  Install a list of packages listed in a file

    repo --install-from-file                    Install all packages listed in the file ./packages.list to ./packages directory.
    repo --install-from-file [file]             Install all packages listed in the file ./packages.list to ./packages directory.
    repo [path] --install-from-file [file]      Install all packages listed in the file [file] to [path]


  Open package project URL or Licence URL

    repo --url [pack]                           Browse project URL of a package [pack] in ./packages.
    repo --license [pack]                       Browse licence URL of a package [pack] in ./packages.
    repo [path] --url [pack]                    Browse project URL of a package [pack] in [path]
    repo [path] --license [pack]                Browse licence URL of a package [pack] in [path]

  Show references for F# *.fsx scripts:        [frm]:  .NET Framework  net40 | net45   

    repo --ref [frm]                            Show all assembly references from current ./packages.
    repo --ref  --pack [pack]                   Show all assembly references from a package [pack] at ./packages.              
    repo [path] --ref [frm]                     Show all assembly references from current [repo] directory.
    repo [path] --ref [frm] [pack]              Show all assembly references from a package at [repo] directory
1.5.3.2 List packages
  1. List packages in project repository ./packages directory:
    • $ pget.exe repo --list or $ pget.exe -l

    Example:

    $ bin/pget.exe repo -l
    Microsoft.Web.Xdt 2.1.1
    NuGet.Core 2.12.0
    
    
    $ tree packages
    packages
    ├── Microsoft.Web.Xdt.2.1.1
    │   ├── lib
    │   │   └── net40
    │   │       └── Microsoft.Web.XmlTransform.dll
    │   └── Microsoft.Web.Xdt.2.1.1.nupkg
    └── NuGet.Core.2.12.0
        ├── lib
        │   └── net40-Client
        │       └── NuGet.Core.dll
        └── NuGet.Core.2.12.0.nupkg
    
    6 directories, 4 files
    
  2. List packages in a local repository
    • $ pget.exe repo --list [directory] or $ pget.exe --l [directory]

    Example:

    $ bin/pget.exe repo -l /home/arch/nuget
    Common.Logging 2.1.2
    Deedle 1.2.5
    Deedle.RPlugin 1.2.5
    DynamicInterop 0.7.4
    EntityFramework 6.0.0
    Eto.Forms 2.2.0
    Eto.Platform.Gtk 2.2.0
    Eto.Platform.Gtk3 2.2.0
    FAKE 4.39.0
    ...
    
1.5.3.3 Show package information (metadata)
  1. Show all packages in project repository (./packages)
    • $ pget.exe pget repo --show or $ pget.exe repo -sh

    Example:

    $ bin/pget.exe repo --show
    
    Id             Microsoft.Web.Xdt
    Title          Microsoft Xml Document Transformation
    Tags
    Version        2.1.1
    Summary        Microsoft Xml Document Transformation (XDT) enables transformig XML files. This is the same technology used to transform web.config files for Visual Studio web projects.
    Authors        Microsoft Corporation
    Project URL
    Dependencies
    Download Count -1
    
    Description    Microsoft Xml Document Transformation (XDT) library. For more info on XDT please visit http://msdn.microsoft.com/en-us/library/dd465326.aspx.
    
    
    Id             NuGet.Core
    Title
    Tags            nuget
    Version        2.12.0
    Summary
    Authors        Outercurve Foundation
    Project URL    https://github.com/NuGet/NuGet2
    Dependencies   Microsoft.Web.Xdt 2.1.0
    Download Count -1
    
    Description    NuGet.Core is the core framework assembly for NuGet that the rest of NuGet builds upon.
    
  2. Show all packages in a local repository
    • $ pget.exe repo [path] --show or $ pget.exe repo [path] -sh

    Example:

    $ bin/pget.exe repo /tmp/testrepo --show
    
    Id             FParsec
    Title          FParsec
    Tags            parser combinator f# fsharp c# csharp parsec fparsec 
    Version        1.0.2
    Summary        
    Authors        Stephan Tolksdorf
    Project URL    http://www.quanttec.com/fparsec/
    Dependencies   
    Download Count -1
    
    Description    FParsec is a parser combinator library for F#.
    
    You can find comprehensive documentation for FParsec at http://www.quanttec.com/fparsec. The documentation includes a feature list, a tutorial, a user’s guide and an API reference.
    
    This package uses the basic “low-trust” configuration of FParsec, which does not use any unverifiable code and is optimized for maximum portability. If you need to parse very large files or if you employ FParsec for performance-critical jobs, consider using the alternate “Big Data Edition” NuGet package (see nuget.org/packages/fparsec-big-data-edition).
    
    
    Id             FSharp.Data
    Title          F# Data
    Tags            F# fsharp data typeprovider WorldBank CSV HTML CSS JSON XML HTTP linqpad-samples 
    Version        2.3.2
    Summary        Library of F# type providers and data access tools
    Authors        Tomas Petricek,  Gustavo Guerra,  Colin Bull
    Project URL    http://fsharp.github.io/FSharp.Data
    Dependencies   Zlib.Portable 1.11.0, Zlib.Portable 1.11.0, Zlib.Portable 1.11.0
    Download Count -1
    
    Description    The F# Data library (FSharp.Data.dll) implements everything you need to access data in your F# applications and scripts. It implements F# type providers for working with structured file formats (CSV, HTML, JSON and XML) and for accessing the WorldBank data. It also includes helpers for parsing CSV, HTML and JSON files and for sending HTTP requests.
    
    ...
    
  3. Show a single package in project repository (./packages)
    • $ pget.exe repo --show [package-Id] or - $ pget.exe repo -sh [package-Id]

    Example:

    $ bin/pget.exe repo --show NuGet.Core
    
    Id             NuGet.Core
    Title
    Tags            nuget
    Version        2.12.0
    Summary
    Authors        Outercurve Foundation
    Project URL    https://github.com/NuGet/NuGet2
    Dependencies   Microsoft.Web.Xdt 2.1.0
    Download Count -1
    
    Description    NuGet.Core is the core framework assembly for NuGet that the rest of NuGet builds upon.
    
  4. Show a single package in a Local Repository
    • $ pget.exe repo [path] --show [package-Id]

    or

    • $ pget.exe repo [path] -sh [package-Id]

    Example:

    $ bin/pget.exe repo ~/nuget --show NUnit.Console
    
    Id             NUnit.Console
    Title          NUnit Console Runner Version 3 Plus Extensions
    Tags            nunit test testing tdd runner
    Version        3.5.0
    Summary        Console runner for the NUnit 3 unit-testing framework with selected extensions.
    Authors        Charlie Poole
    Project URL    http://nunit.org/
    Dependencies   NUnit.ConsoleRunner 3.5.0, NUnit.Extension.NUnitProjectLoader 3.5.0, NUnit.Extension.VSProjectLoader 3.5.0, NUnit.Extension.NUnitV2ResultWriter 3.5.0, NUnit.Extension.NUnitV2Driver 3.5.0, NUnit.Extension.TeamCityEventListener 1.0.2
    Download Count -1
    
    Description    This package includes the nunit3-console runner and test engine for version 3.0 of the NUnit unit-testing framework.
    
          The following extensions are included with this package:
          * NUnitProjectLoader     - loads tests from NUnit projects
          * VSProjectLoader        - loads tests from Visual Studio projects
          * NUnitV2ResultWriter    - saves results in NUnit V2 format.
          * NUnitV2FrameworkDriver - runs NUnit V2 tests.
          * TeamCityEventListener - supports special progress messages used by teamcity.
    
          Other extensions, if needed, must be installed separately
    
1.5.3.4 Show package files
  1. Show files of a package in project repository ./packages
    • $ pget.exe repo --files [package-id]

    Example:

    $ bin/pget.exe repo --files OxyPlot.Core
    
    packages/OxyPlot.Core.1.0.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1+Xamarin.iOS10/OxyPlot.dll
    packages/OxyPlot.Core.1.0.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1+Xamarin.iOS10/OxyPlot.pdb
    packages/OxyPlot.Core.1.0.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1+Xamarin.iOS10/OxyPlot.xml
    packages/OxyPlot.Core.1.0.0/lib/net45/OxyPlot.dll
    packages/OxyPlot.Core.1.0.0/lib/net45/OxyPlot.pdb
    packages/OxyPlot.Core.1.0.0/lib/net45/OxyPlot.xml
    packages/OxyPlot.Core.1.0.0/lib/net40-client/OxyPlot.dll
    packages/OxyPlot.Core.1.0.0/lib/net40-client/OxyPlot.pdb
    packages/OxyPlot.Core.1.0.0/lib/net40/OxyPlot.dll
    packages/OxyPlot.Core.1.0.0/lib/net40/OxyPlot.pdb
    packages/OxyPlot.Core.1.0.0/lib/sl5/OxyPlot.dll
    packages/OxyPlot.Core.1.0.0/lib/sl5/OxyPlot.pdb
    packages/OxyPlot.Core.1.0.0/README.md
    packages/OxyPlot.Core.1.0.0/CHANGELOG.md
    
    
    $ bin/pget.exe repo --files FParsec
    packages/FParsec.1.0.2/lib/net40-client/FParsec.dll
    packages/FParsec.1.0.2/lib/net40-client/FParsec.XML
    packages/FParsec.1.0.2/lib/net40-client/FParsecCS.dll
    packages/FParsec.1.0.2/lib/net40-client/FParsecCS.XML
    packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.dll
    packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.XML
    packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.dll
    packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.XML
    
  2. Show files of a package in a local repository
    • $ pget.exe repo [path] --files [package-id]
    $ bin/pget.exe repo ~/nuget --files FParsec
    
    /home/arch/nuget/FParsec.1.0.2/lib/net40-client/FParsec.dll
    /home/arch/nuget/FParsec.1.0.2/lib/net40-client/FParsec.XML
    /home/arch/nuget/FParsec.1.0.2/lib/net40-client/FParsecCS.dll
    /home/arch/nuget/FParsec.1.0.2/lib/net40-client/FParsecCS.XML
    /home/arch/nuget/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.dll
    /home/arch/nuget/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.XML
    /home/arch/nuget/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.dll
    /home/arch/nuget/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.XML
    
    
    $ bin/pget.exe repo ~/nuget --files Mono.Cecil
    
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net20/Mono.Cecil.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net20/Mono.Cecil.Mdb.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net20/Mono.Cecil.Pdb.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net35/Mono.Cecil.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net35/Mono.Cecil.Mdb.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net35/Mono.Cecil.Pdb.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net35/Mono.Cecil.Rocks.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net40/Mono.Cecil.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net40/Mono.Cecil.Mdb.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net40/Mono.Cecil.Pdb.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/net40/Mono.Cecil.Rocks.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/sl40/Mono.Cecil.dll
    /home/arch/nuget/Mono.Cecil.0.9.5.4/lib/sl40/Mono.Cecil.Rocks.dll
    
1.5.3.5 Get assembly references for F# scripts
  1. Get all assembly references from current ./packages repository.
    • $ pget.exe repo --ref [framework]

    The framework is the .NET framework version. It can be:

    • net40 for .NET 4.0
    • net45 for .NET 4.5

    Example:

    $ bin/pget.exe repo --ref net40
    #r "packages/FParsec.1.0.2/lib/net40-client/FParsec.dll"
    #r "packages/FParsec.1.0.2/lib/net40-client/FParsecCS.dll"
    #r "packages/Microsoft.Web.Xdt.2.1.1/lib/net40/Microsoft.Web.XmlTransform.dll"
    #r "packages/NuGet.Core.2.12.0/lib/net40-Client/NuGet.Core.dll"
    #r "packages/OxyPlot.Core.1.0.0/lib/net40/OxyPlot.dll"
    #r "packages/OxyPlot.Pdf.1.0.0/lib/net40/OxyPlot.Pdf.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/MigraDoc.DocumentObjectModel.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/MigraDoc.Rendering.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/MigraDoc.RtfRendering.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/PdfSharp.Charting.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/PdfSharp.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/MigraDoc.DocumentObjectModel.resources.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/MigraDoc.Rendering.resources.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/MigraDoc.RtfRendering.resources.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/PdfSharp.Charting.resources.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/PdfSharp.resources.dll"
    
    
    $ bin/pget.exe repo --ref net45
    #r "packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.dll"
    #r "packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.dll"
    #r "packages/Microsoft.Web.Xdt.2.1.1/lib/net40/Microsoft.Web.XmlTransform.dll"
    #r "packages/NuGet.Core.2.12.0/lib/net40-Client/NuGet.Core.dll"
    #r "packages/OxyPlot.Core.1.0.0/lib/net40/OxyPlot.dll"
    #r "packages/OxyPlot.Pdf.1.0.0/lib/net40/OxyPlot.Pdf.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/MigraDoc.DocumentObjectModel.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/MigraDoc.Rendering.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/MigraDoc.RtfRendering.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/PdfSharp.Charting.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/PdfSharp.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/MigraDoc.DocumentObjectModel.resources.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/MigraDoc.Rendering.resources.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/MigraDoc.RtfRendering.resources.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/PdfSharp.Charting.resources.dll"
    #r "packages/PDFsharp-MigraDoc-GDI.1.32.4334.0/lib/net20/de/PdfSharp.resources.dll"
    
  2. Get all assembly references from a package in ./packages:
    • $ pget.exe repo --ref [framework] [package-id]

    Example:

    $ bin/pget.exe repo --ref net45 FParsec
    #r "packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.dll"
    #r "packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.dll"
    
  3. Get all assembly references from a local repository.
    • $ pget.exe repo [path] --ref [framework]

    Example:

    $ bin/pget.exe repo /tmp/packages -i FSharp.Data 
    Installing: FSharp.Data 2.3.2
    
    $ bin/pget.exe repo /tmp/packages -i FParsec
    Installing: FParsec 1.0.2
    
    
    $ ls /tmp/packages/
    FParsec.1.0.2/  FSharp.Data.2.3.2/  Zlib.Portable.1.11.0/
    
    $ bin/pget.exe repo /tmp/packages --ref net40
    #r "/tmp/packages/FParsec.1.0.2/lib/net40-client/FParsec.dll"
    #r "/tmp/packages/FParsec.1.0.2/lib/net40-client/FParsecCS.dll"
    #r "/tmp/packages/FSharp.Data.2.3.2/lib/net40/FSharp.Data.dll"
    #r "/tmp/packages/FSharp.Data.2.3.2/lib/net40/FSharp.Data.DesignTime.dll"
    #r "/tmp/packages/Zlib.Portable.1.11.0/lib/portable-net4+sl5+wp8+win8+wpa81+MonoTouch+MonoAndroid/Zlib.Portable.dll"
    
    $ bin/pget.exe repo /tmp/packages --ref net45
    #r "/tmp/packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.dll"
    #r "/tmp/packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.dll"
    #r "/tmp/packages/FSharp.Data.2.3.2/lib/portable-net45+netcore45+wpa81+wp8/FSharp.Data.dll"
    #r "/tmp/packages/FSharp.Data.2.3.2/lib/portable-net45+netcore45+wpa81+wp8/FSharp.Data.DesignTime.dll"
    #r "/tmp/packages/Zlib.Portable.1.11.0/lib/portable-net4+sl5+wp8+win8+wpa81+MonoTouch+MonoAndroid/Zlib.Portable.dll"
    
  4. Get all assembly references from a package in a local repository
    • $ pget.exe repo [path --ref [framework] [package-id]

    Example:

    $ bin/pget.exe repo ~/nuget --ref net45 FParsec
    #r "/home/arch/nuget/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.dll"
    #r "/home/arch/nuget/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.dll"
    
    $ bin/pget.exe repo ~/nuget --ref net45 FSharp.Data
    #r "/home/arch/nuget/FSharp.Data.2.3.1/lib/portable-net45+netcore45+wpa81+wp8/FSharp.Data.dll"
    #r "/home/arch/nuget/FSharp.Data.2.3.1/lib/portable-net45+netcore45+wpa81+wp8/FSharp.Data.DesignTime.dll"
    
1.5.3.6 Open package project URL in the browser
  1. Open project URL of package in ./packages
    • $ pget.exe repo --url [packageId]

    Example:

    $ bin/pget.exe repo --url FParsec
    Opening http://www.quanttec.com/fparsec/
    
  2. Open project URL of package in a local repository
    • $ pget.exe repo [path] --url [packageId]

    Example:

    $ bin/pget.exe repo ~/nuget --url Eto.Forms
    Opening https://github.com/picoe/Eto
    
1.5.3.7 Open package licensee URL in the browser
  1. Open license URL of package in ./packages
    • $ pget.exe repo --license [packageId]

    Example:

    $ bin/pget.exe repo --license FParsec
    Opening http://www.quanttec.com/fparsec/license.html
    
  2. Open license URL of package in a local repository
    • $ pget.exe repo [path] --licence [packageId]

    Example:

    $ bin/pget.exe repo ~/nuget --license NUnit.Console
    Opening http://nunit.org/nuget/nunit3-license.txt
    
1.5.3.8 Install packages
  1. Install the lastest version of a package to ./packages (Project repository)
    • $ pget.exe repo --install [package-id] or - $ pget.exe repo -i [package-id]

    Example:

    $ bin/pget.exe repo --install OxyPlot.Pdf
    Installing: OxyPlot.Pdf 1.0.0
    
    $ ls -l packages
    total 0
    drwxrwxrwx 1 arch arch 280 dez 19 00:52 Microsoft.Web.Xdt.2.1.1/
    drwxrwxrwx 1 arch arch 264 dez 19 01:45 NuGet.Core.2.12.0/
    drwxrwxrwx 1 arch arch 488 dez 19 02:22 OxyPlot.Core.1.0.0/
    drwxrwxrwx 1 arch arch 480 dez 19 02:22 OxyPlot.Pdf.1.0.0/
    drwxrwxrwx 1 arch arch 296 dez 19 02:22 PDFsharp-MigraDoc-GDI.1.32.4334.0/
    
     bin/pget.exe repo -sh OxyPlot.Core
    
    Id             OxyPlot.Core
    Title          OxyPlot core library (PCL)
    Tags            plotting plot charting chart
    Version        1.0.0
    Summary
    Authors        Oystein Bjorke
    Project URL    http://oxyplot.org/
    Dependencies
    Download Count -1
    
    Description    OxyPlot is a plotting library for .NET. This is the portable core library that is referenced by the platform-specific OxyPlot packages.
    
  2. Install a specific version of package to ./packages
    • $ pget.exe repo --install [package-id] [version]

    or

    • $ pget.exe repo -i [package-id] [version]

    Example:

    $ bin/pget.exe repo -i FParsec 1.0.2
    
    $ ls -l packages
    total 0
    drwxrwxrwx 1 arch arch 256 dez 19 02:31 FParsec.1.0.2/
    drwxrwxrwx 1 arch arch 280 dez 19 00:52 Microsoft.Web.Xdt.2.1.1/
    drwxrwxrwx 1 arch arch 264 dez 19 01:45 NuGet.Core.2.12.0/
    drwxrwxrwx 1 arch arch 488 dez 19 02:22 OxyPlot.Core.1.0.0/
    drwxrwxrwx 1 arch arch 480 dez 19 02:22 OxyPlot.Pdf.1.0.0/
    drwxrwxrwx 1 arch arch 296 dez 19 02:22 PDFsharp-MigraDoc-GDI.1.32.4334.0/
    
  3. Install the lastest version of a package to a local repository
    • $ pget.exe repo [path] --install [package-id]

    or

    • $ pget.exe repo [path] -i [package-id] -r [path]

    Example:

    $ bin/pget.exe repo -i /home/arch/nuget  OxyPlot.Pdf 
    Installing: OxyPlot.Pdf 1.0.0
    
    $ bin/pget.exe repo /home/arch/nuget -sh OxyPlot.Pdf
    
    Id             OxyPlot.Pdf
    Title          OxyPlot PDF extensions (for Silverlight and NET4)
    Tags            pdf plotting plot charting chart
    Version        1.0.0
    Summary
    Authors        Oystein Bjorke
    Project URL    http://oxyplot.org/
    Dependencies   OxyPlot.Core [1.0.0], PDFsharp-MigraDoc-GDI [1.32.4334], OxyPlot.Core [1.0.0], PDFsharp-MigraDoc-GDI [1.32.4334], OxyPlot.Core [1.0.0]
    Download Count -1
    
    Description    OxyPlot is a plotting library for .NET. This package contains .pdf export extensions for .NET 4 (based on PDFsharp) and Silverlight (based on SilverPDF).
    
  4. Install a specific version of package to a local repository
    • $ pget.exe repo [path] --install [package-id] [version]

    or

    • $ pget.exe repo [path] -i [package-id] -v [package]

    Example:

    $ bin/pget.exe repo ~/nuget -i Microsoft.Web.Xdt 1.0.0
    
1.5.3.9 Install a list of packages
  1. Install a list of packages to ./packages
    • $ pget.exe repo --install-list FParsec-1.0.2 OxyPlot

    or

    • $ pget.exe repo -il FParsec-1.0.2 OxyPlot

    If the version is not specified it installs the lastest version.

  2. Install a list of pacakges to a local repository
    • $ pget.exe repo ~/nuget --install-list FParsec-1.0.2 OxyPlot

    or

    • $ pget.exe repo ~/nuget -il FParsec-1.0.2 OxyPlot ... packageN
1.5.3.10 Install packages listed in a file
  1. Install all packages listed in the file ./packages.list to ./packages
    • $ pget.exe repo --install-from-file

    or

    • $ pget.exe repo -if

    Example of the file packages.list. If the version is not listed, it installs the latest version of the packages to ./packages.

    File: packages.list

    FSharp.Data              1.0.0
    Deedle                   1.0.0
    OxyPlot.Pdf
    OxyPlot.WindowsForms
    
  2. Install all packages listed in the file ./packages.list to ./packages
    • $ pget.exe repo --install-from-file [packages-list-file]

    or

    • $ pget.exe repo -if [package-list-file]

1.5.4 NuGet Repository

1.5.4.1 Show nuget commands help   help
  • $ pget.exe nuget

Example:

$ bin/pget.exe nuget

  Nuget commands:

    nuget --search [package]                    Search a package by name.  
    nuget --show   [package]                    Show package information (metadata).
    nuget --open                                Open NuGet web site - https://www.nuget.org
1.5.4.2 Search a package
  • $ pget.exe nuget --search [keyword] or - $ pget.exe nuget -s [keywork]

Example:

 $ bin/pget.exe nuget -s oxyplot

 Id             AnnotationGUIOxyplot
 Title
 Tags
 Version        0.0.1
 Summary
 Authors        tschwarz
 Project URL
 Dependencies
 Download Count 68

 Description    My package description.


 Id             Eto.OxyPlot
 Title          Eto.OxyPlot
 Tags
 Version        1.2.0-beta
 Summary
 Authors        Loren Van Spronsen
 Project URL
 Dependencies   Eto.Forms 2.2.0, OxyPlot.Core 1.0.0-unstable2063
 Download Count 3382

 Description    OxyPlot bindings for the Eto UI framework

... ... ...
1.5.4.3 Display package information (metadata)
  • pget.exe nuget --show

Example:

$ bin/pget.exe nuget --show FParsec

Id             FParsec
Title          FParsec
Tags            parser combinator parsec fsharp 
Version        0.9.1
Summary        FParsec is a parser combinator library for F#.
Authors        Stephan Tolksdorf (FParsec),   Ryan Riley (NuGet Package)
Project URL    http://quanttec.com/fparsec/
Dependencies   
Download Count 66877

Description    FParsec is a parser combinator library for F#


$ bin/pget.exe nuget --show FParsecsdadfsf
Error: I can't find the package FParsecsdadfsf

$ bin/pget.exe nuget --show FSharp.Core

Id             FSharp.Core
Title          FSharp.Core
Tags           f#
Version        2.0.0.0
Summary        FSharp.Core.dll
Authors        Microsoft
Project URL    
Dependencies   
Download Count 460728

Description    FSharp.Core.dll which can be referenced in other nuget packages.

1.5.5 NuGet package files nupkg files

1.5.5.1 Show nupkg help   help
  • $ pget.exe nupkg

Example:

$ bin/pget.exe nupkg

  Nupkg Files:

    nupkg --show  [file]                        Show metadata of a *.nupkg file
    nupkg --files [file]                        Show files in nupkg [file]
1.5.5.2 Show package file metadata

Show a NuGet package metadata

  • $ pget.xe nupkg --show [nupkg-file]

Example:

$ bin/pget.exe nupkg --show ./packages/FParsec.1.0.2/FParsec.1.0.2.nupkg

Id             FParsec
Title          FParsec
Tags            parser combinator f# fsharp c# csharp parsec fparsec 
Version        1.0.2
Summary        
Authors        Stephan Tolksdorf
Project URL    http://www.quanttec.com/fparsec/
Dependencies   
Download Count -1

Description    FParsec is a parser combinator library for F#.

You can find comprehensive documentation for FParsec at http://www.quanttec.com/fparsec. The documentation includes a feature list, a tutorial, a user’s guide and an API reference.

This package uses the basic “low-trust” configuration of FParsec, which does not use any unverifiable code and is optimized for maximum portability. If you need to parse very large files or if you employ FParsec for performance-critical jobs, consider using the alternate “Big Data Edition” NuGet package (see nuget.org/packages/fparsec-big-data-edition).
1.5.5.3 Show package files
  • $ pget.exe nupkg --files [nupkg-file]

Example:

$ bin/pget.exe nupkg --files ./packages/FParsec.1.0.2/FParsec.1.0.2.nupkg
lib/net40-client/FParsec.dll
lib/net40-client/FParsec.XML
lib/net40-client/FParsecCS.dll
lib/net40-client/FParsecCS.XML
lib/portable-net45+netcore45+wpa81+wp8/FParsec.dll
lib/portable-net45+netcore45+wpa81+wp8/FParsec.XML
lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.dll
lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.XML

1.5.6 Assembly metadata and .NET types

1.5.6.1 Show Assembly commands help   help
  • $ pget.exe asm

Example:

$ bin/pget.exe asm

  Assembly files: *.exe or *.dll

    asm --info [file]                                    Show all assembly attributes from an assembly [file].
    asm --refs [file]                                    Show all assembly references from an assembly [file].
    asm --resources  [file]                              Show resources from an assembly file.
    asm --namespace|-ns [file]                           Show all exported namespaces.
    asm --namespace|-ns [file] [nspace]                  Show all types within an exported namespace from an assembly [file].

    asm --type [file]                                    Show all types exported by assembly [file]
    asm --type [file] [type]                             Show information about [type] exported by assembly [file].
    asm --interface [file]                               Show all interfaces exported by assembly [file]. 
    asm --abstract  [file]                               Show all abstract classes exported by assembly [file].

    asm --class  [file]                                  Show all classes exported by assembly [file].
    asm --classn [file]                                  Show all non-abstract classes exported by assembly [file]

    asm --docgen [file]                                  Print all types documentation on screen
    asm --docgen [file] [output-file]                    Export all types documentation to org-mode file.
1.5.6.2 Show .NET type information
  • $ pget.exe asm --type-info [type name]

Example:

$ pget.exe asm --type-info System.IO.Directory

**** Type Info

 - Name:           Directory
 - Full Name:      System.IO.Directory
 - Namespace:      System.IO
 - Module:         mscorlib.dll
 - Base Type:      System.Object

*Predicates*

 - Class:          True
 - Abstract Class: True
 - Primitive       False
 - Array:          False
 - Interface       False
 - Enum            False
 - Public          True
 - Visible         True


**** Fields


**** Properties


**** Constructors


**** Instance Methods

 - Public  System.Boolean Equals (System.Object obj)

 - Public  System.Int32 GetHashCode ()

 - Public  System.Type GetType ()

 - Public  System.String ToString ()

....  

**** Static Methods

 - Public Static System.IO.DirectoryInfo CreateDirectory (System.String path)

 - Public Static System.IO.DirectoryInfo CreateDirectory (System.String path, System.Security.AccessControl.DirectorySecurity directorySecurity)

 - Public Static System.Void Delete (System.String path)

 - Public Static System.Void Delete (System.String path, System.Boolean recursive)

 - Public Static System.Boolean Exists (System.String path)

 - Public Static System.DateTime GetLastAccessTime (System.String path)

 - Public Static System.DateTime GetLastAccessTimeUtc (System.String path)

 - Public Static System.DateTime GetLastWriteTime (System.String path)

 - Public Static System.DateTime GetLastWriteTimeUtc (System.String path)

... ...
1.5.6.3 Show Assembly Attributes
  • $ pget.exe asm --info [assembly-file or asm-gac]

Show assembly attribute of assembly file or assembly in GAC.

Example:

$ bin/pget.exe asm --info ~/bin/nuget.exe
Assembly Attributes
-------------------------------------------
Name         NuGet
Version      3.4.4.1321
CLR Version  v4.0.30319
Product      NuGet
Culture
Company      Microsoft Corporation
Description  NuGet Command Line
Copyright    Microsoft Corporation. All rights reserved.
GUID
Com Visible  False
Codebase     file:///home/arch/bin/nuget.exe

Example 2:

$ bin/pget.exe asm --info ~/nuget/FSharp.Core.3.1.2.5/lib/net40/FSharp.Core.dll
Assembly Attributes
-------------------------------------------
Name         FSharp.Core
Version      4.3.1.0
CLR Version  v4.0.30319
Product      Microsoft® Visual Studio® 2013
Culture
Company      Microsoft Corporation
Description  FSharp.Core.dll
Copyright    © Microsoft Corporation. All rights reserved.
GUID
Com Visible  False
Codebase     file:///home/arch/nuget/FSharp.Core.3.1.2.5/lib/net40/FSharp.Core.dll

Example 3: Show information about assembly in GAC (System.Xml.dll)

$ mono bin/Debug/Pget.exe asm --info System.Xml
Assembly Attributes
-------------------------------------------
Name         System.Xml
Version      4.0.0.0
CLR Version  v4.0.30319
Product      Mono Common Language Infrastructure
Culture      
Company      Mono development team
Description  System.Xml.dll
Copyright    (c) Various Mono authors
GUID         
Com Visible  False
Codebase     file:///usr/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll
1.5.6.4 Show assembly references

Show assemblies referenced by an assembly file

  • $ pget.exe asm --refs [assembly-file]

Example:

$ bin/pget.exe asm --refs ~/bin/nuget.exe
Name = mscorlib     Version = 4.0.0.0       Culture =
Name = Microsoft.CSharp     Version = 4.0.0.0       Culture =
Name = System.Core      Version = 4.0.0.0       Culture =
Name = System       Version = 4.0.0.0       Culture =
Name = System.Xml.Linq      Version = 4.0.0.0       Culture =
Name = System.Xml       Version = 4.0.0.0       Culture =
Name = Microsoft.Build      Version = 4.0.0.0       Culture =
Name = Microsoft.Build.Framework        Version = 4.0.0.0       Culture =
Name = System.ComponentModel.Composition        Version = 4.0.0.0       Culture =
Name = Microsoft.Build.Utilities.v4.0       Version = 4.0.0.0       Culture =
Name = System.Numerics      Version = 4.0.0.0       Culture =
Name = System.Data      Version = 4.0.0.0       Culture =
Name = System.Runtime.Serialization     Version = 4.0.0.0       Culture =
Name = System.Security      Version = 4.0.0.0       Culture =
Name = System.ComponentModel.DataAnnotations        Version = 4.0.0.0       Culture =
Name = WindowsBase      Version = 4.0.0.0       Culture =
Name = System.ServiceModel      Version = 4.0.0.0       Culture =
Name = System.Data.Services.Client      Version = 4.0.0.0       Culture =
Name = System.IO.Compression        Version = 4.0.0.0       Culture =
Name = System.Net.Http      Version = 4.0.0.0       Culture =
Name = System.IdentityModel     Version = 4.0.0.0       Culture =
Name = System.Net.Http.WebRequest       Version = 4.0.0.0       Culture =
1.5.6.5 Show Assembly Resources
  • $ pget.exe asm --resources [asmfile]

Example:

$ bin/pget.exe asm --resources bin/pget.exe 
FSCore.resources
NuGet.CommonResources.resources
NuGet.NuGet.Frameworks.Strings.resources
NuGet.Resources.AnalysisResources.resources
NuGet.Resources.NuGetResources.resources
NuGet.Authoring.nuspec.xsd
1.5.6.6 Show all exported types
  • $ pget.exe asm --type [asmFile]

Example 1: Show exported type by assembly file.

$ bin/pget.exe repo --files NuGet.Core
packages/NuGet.Core.2.12.0/lib/net40-Client/NuGet.Core.dll

$ bin/pget.exe asm --type packages/NuGet.Core.2.12.0/lib/net40-Client/NuGet.Core.dll
NuGet.IPackageRule
NuGet.PackageIssue
NuGet.DefaultPackageRuleSet
NuGet.PackageIssueLevel
NuGet.AssemblyMetadata
NuGet.AssemblyMetadataExtractor
NuGet.IFrameworkTargetable
NuGet.IPackageFile

...

NuGet.IPackageAssemblyReference
NuGet.PhysicalPackageAssemblyReference
NuGet.ConfigurationDefaults
NuGet.ICredentialProvider
NuGet.SettingsCredentialProvider
NuGet.ISettings
NuGet.NullSettings
NuGet.Settings
NuGet.SettingValue

...

NuGet.Resources.NuGetResources
NuGet.ProjectSystemExtensions
NuGet.PathUtility
NuGet.CryptoHashProvider
NuGet.StreamExtensions
NuGet.PackageHelper
NuGet.XmlUtility
NuGet.IProjectSystem
NuGet.PackageSaveModes
NuGet.Constants
NuGet.PackageDependency
NuGet.VersionUtility
NuGet.XElementExtensions

Example 2: Show exported types by assembly in GAC.

$ mono bin/Debug/Pget.exe asm --type System.Xml

System.Xml.Xsl.Runtime.ContentIterator
System.Xml.Xsl.Runtime.ElementContentIterator
System.Xml.Xsl.Runtime.NodeKindContentIterator
System.Xml.Xsl.Runtime.AttributeIterator
System.Xml.Xsl.Runtime.NamespaceIterator
System.Xml.Xsl.Runtime.AttributeContentIterator
System.Xml.Xsl.Runtime.ContentMergeIterator
System.Xml.Xsl.Runtime.DodSequenceMerge
System.Xml.Xsl.Runtime.SetIteratorResult

... ... ...

System.Xml.Xsl.XsltContext
System.Xml.Xsl.XsltException
System.Xml.Xsl.XsltCompileException
System.Xml.Xsl.XslTransform
System.Xml.Xsl.XsltSettings
1.5.6.7 Show type information
  • $ pget.exe asm --type [asmFile] [TypeName]

Example: Show information about type NuGet.ZipPackage exported by NuGet.Core.dll .

$ bin/pget.exe repo --files NuGet.Core
packages/NuGet.Core.2.12.0/lib/net40-Client/NuGet.Core.dll


$ bin/pget.exe asm --type packages/NuGet.Core.2.12.0/lib/net40-Client/NuGet.Core.dll NuGet.ZipPackage

**** Type Info

 - Name:           ZipPackage
 - Full Name:      NuGet.ZipPackage
 - Namespace:      NuGet
 - Module:         NuGet.Core.dll
 - Base Type:      NuGet.LocalPackage

*Predicates*

 - Class:          True
 - Abstract Class: False
 - Primitive       False
 - Array:          False
 - Interface       False
 - Enum            False
 - Public          True
 - Visible         True



**** Fields

**** Properties
 - System.String Id

 - NuGet.SemanticVersion Version

 - System.String Title

 - System.Collections.Generic.IEnumerable`1[System.String] Authors

 - System.Collections.Generic.IEnumerable`1[System.String] Owners

 - System.Uri IconUrl

 - System.Uri LicenseUrl

 - System.Uri ProjectUrl

 - System.Uri ReportAbuseUrl

 - Int32 DownloadCount

 - Boolean RequireLicenseAcceptance

 - Boolean DevelopmentDependency

 - System.String Description

 - System.String Summary

 - System.String ReleaseNotes

 - System.String Language

 - System.String Tags

 - System.Version MinClientVersion

 - Boolean IsAbsoluteLatestVersion

 - Boolean IsLatestVersion

 - Boolean Listed

 - System.Nullable`1[System.DateTimeOffset] Published

 - System.String Copyright

 - System.Collections.Generic.IEnumerable`1[NuGet.PackageDependencySet] DependencySets

 - System.Collections.Generic.IEnumerable`1[NuGet.FrameworkAssemblyReference] FrameworkAssemblies

 - System.Collections.Generic.IEnumerable`1[NuGet.IPackageAssemblyReference] AssemblyReferences

 - System.Collections.Generic.ICollection`1[NuGet.PackageReferenceSet] PackageAssemblyReferences


**** Constructors
    Void .ctor(String)

    Void .ctor(Func`1, Func`1)

    Void .ctor(Stream)


**** Methods
 - System.IO.Stream GetStream()

 - Void ExtractContents(NuGet.IFileSystem, System.String)

 - System.String GetPackageIdentifier(System.IO.Packaging.Package)

 - System.Collections.Generic.IEnumerable`1[System.Runtime.Versioning.FrameworkName] GetSupportedFrameworks()

 - System.Collections.Generic.IEnumerable`1[NuGet.IPackageFile] GetFiles()

 - System.String ToString()

 - Boolean Equals(System.Object)

 - Int32 GetHashCode()

 - System.Type GetType()

Example: Show type information about type Eto.Forms.Form defined in Eto.dll.

Note: The summaries about the methods, fields and properties comes from file Eto.xml

$ bin/pget.exe asm --type packages/Eto.Forms.2.3.0/lib/net45/Eto.dll Eto.Forms.Form

**** Type Info

 - Name:           Form
 - Full Name:      Eto.Forms.Form
 - Namespace:      Eto.Forms
 - Module:         Eto.dll
 - Base Type:      Eto.Forms.Window

*Predicates*

 - Class:          True
 - Abstract Class: False
 - Primitive       False
 - Array:          False
 - Interface       False
 - Enum            False
 - Public          True
 - Visible         True



**** Fields

**** Properties
 - Boolean ShowActivated

Gets or sets a value indicating that the form should be activated when initially shown.

 - System.String Title

Gets or sets the title of the window

 - Eto.Drawing.Point Location

Gets or sets the location of the window

 - Eto.Drawing.Rectangle Bounds

Gets or sets the size and location of the window

 - Eto.Forms.ToolBar ToolBar

Gets or sets the tool bar for the window.

 - Double Opacity

Gets or sets the opacity of the window

 - Eto.Forms.Window Owner

Gets or sets the owner of this window.

 - Eto.Forms.Screen Screen

Gets the screen this window is mostly contained in. Typically defined by the screen center of the window is visible.

 - Eto.Forms.MenuBar Menu

Gets or sets the menu bar for this window

 - Eto.Drawing.Icon Icon

Gets or sets the icon for the window to show in the menu bar.

 - Boolean Resizable

Gets or sets a value indicating whether this  is resizable.

 - Boolean Maximizable

Gets or sets a value indicating whether this  can be maximized.

 - Boolean Minimizable

Gets or sets a value indicating whether this  can be minimized.

 - Boolean ShowInTaskbar

Gets or sets a value indicating whether this  will show in the taskbar.

 - Boolean Topmost

Gets or sets a value indicating whether this  is above all other windows.

 - Eto.Forms.WindowState WindowState

Gets or sets the state of the window.

 - Eto.Drawing.Rectangle RestoreBounds

Gets the bounds of the window before it was minimized or maximized, or the current bounds if  is Normal.

 - Eto.Forms.WindowStyle WindowStyle

Gets or sets the style of this window.

 - Single LogicalPixelSize

Gets the number of pixels per logical pixel when on a high DPI display.

 - System.Collections.Generic.IEnumerable`1[Eto.Forms.Control] Controls

Gets an enumeration of controls that are directly contained by this container

 - Eto.Drawing.Padding Padding

Gets or sets the padding around the  of the panel.

 - Eto.Drawing.Size MinimumSize

Gets or sets the minimum size of the panel.

 - Eto.Forms.ContextMenu ContextMenu

Gets or sets the context menu for the panel.

 - Eto.Forms.Control Content

Gets or sets the main content of the panel.

 - Eto.Drawing.Size ClientSize

Gets or sets the size for the client area of the control

 - System.Collections.Generic.IEnumerable`1[Eto.Forms.Control] VisualControls

Gets an enumeration of controls that are in the visual tree.

 - System.Collections.Generic.IEnumerable`1[Eto.Forms.Control] Children

Gets an enumeration of all contained child controls, including controls within child containers

 - System.Collections.Generic.IEnumerable`1[Eto.Forms.Control] VisualChildren

Gets an enumeration of all contained child controls in the visual tree, including controls within child containers.

 - Boolean Loaded

Gets a value indicating that the control is loaded onto a form, that is it has been created, added to a parent, and shown

 - System.Object Tag

Gets or sets a user-defined object that contains data about the control

 - Eto.Drawing.Size Size

Gets or sets the size of the control. Use -1 to specify auto sizing for either the width and/or height.

 - Int32 Width

Gets or sets the width of the control size.

 - Int32 Height

Gets or sets the height of the control size.

 - Boolean Enabled

Gets or sets a value indicating whether this  is enabled and accepts user input.

 - Boolean Visible

Gets or sets a value indicating whether this  is visible to the user.

 - Eto.Forms.Container Parent

Gets the container which this control has been added to, if any

 - Eto.Forms.Container VisualParent

Gets the visual container of this control, if any.

 - Eto.Drawing.Color BackgroundColor

Gets or sets the color for the background of the control

 - Boolean HasFocus

Gets a value indicating whether this instance has the keyboard input focus.

 - Boolean IsSuspended

Gets a value indicating whether the layout of child controls is suspended.

 - Eto.Forms.Window ParentWindow

Gets the window this control is contained in

 - System.Collections.Generic.IEnumerable`1[System.String] SupportedPlatformCommands

Gets the supported platform commands that can be used to hook up system functions to user defined logic

 - Eto.Forms.Cursor Cursor

Gets or sets the type of cursor to use when the mouse is hovering over the control

 - System.String ToolTip

Gets or sets the tool tip to show when the mouse is hovered over the control

 - Eto.Widget Parent

Gets the parent widget which this widget has been added to, if any

 - System.Collections.Generic.IEnumerable`1[Eto.Widget] Parents

Gets an enumeration of all parent widgets in the heirarchy by traversing the  property.

 - System.Object DataContext

Gets or sets the data context for this widget for binding

 - Eto.Forms.BindingCollection Bindings

Gets the collection of bindings that are attached to this widget

 - Eto.Platform Platform

Gets the platform that was used to create the  for this widget

 - System.Object Handler

Gets the platform-specific handler for this widget

 - IntPtr NativeHandle

Gets the native platform-specific handle for integration purposes

 - Eto.PropertyStore Properties

Gets the dictionary of properties for this widget

 - System.String ID

Gets or sets the ID of this widget

 - System.String Style

Gets or sets the style of this widget

 - System.Object ControlObject

Gets the instance of the platform-specific object


**** Constructors
    Void .ctor()

    Void .ctor(IHandler)


**** Methods
 - Void Show()

Show the form

 - Void Close()

Closes the window

 - Void Minimize()

Sets  to

 - Void Maximize()

Sets  to

 - Void BringToFront()

Brings the window in front of all other windows in the z-order.

 - Void SendToBack()

Sends the window behind all other windows in the z-order.

 - Void Remove(Eto.Forms.Control)

Removes the specified child from the container

 - Void Unbind()

Unbinds any bindings in the  collection and removes the bindings, and recurses to this container's children

 - Void UpdateBindings(Eto.Forms.BindingUpdateMode)

Updates all bindings in this widget, and recurses to this container's children

 - Void Remove(System.Collections.Generic.IEnumerable`1[Eto.Forms.Control])

Remove the specified  from this container

 - Void RemoveAll()

Removes all controls from this container

 - T FindChild[T](System.String)

Finds a child control in this container or any of its child containers with the specified

 - Eto.Forms.Control FindChild(System.Type, System.String)

Finds a child control in this container or any of its child containers with the specified

 - Eto.Forms.Control FindChild(System.String)

Finds a child control in this container or any of its child containers with the specified

 - Void Invalidate()

Queues a repaint of the entire control on the screen

 - Void Invalidate(Eto.Drawing.Rectangle)

Queues a repaint of the entire control on the screen

 - Eto.Forms.Container FindParent(System.Type, System.String)

Finds a control in the parent hierarchy with the specified type and  if specified

 - Eto.Forms.Container FindParent(System.String)

Finds a control in the parent hierarchy with the specified type and  if specified

 - Void Detach()

Detaches the control by removing it from its parent

 - Void AttachNative()

Attaches the control for direct use in a native application

 - Void Focus()

Attempts to set the keyboard input focus to this control, or the first child that accepts focus

 - Void SuspendLayout()

Suspends the layout of child controls

 - Void ResumeLayout()

Resumes the layout after it has been suspended, and performs a layout

 - Void MapPlatformCommand(System.String, Eto.Forms.Command)

Specifies a command to execute for a platform-specific command

 - Eto.Drawing.PointF PointFromScreen(Eto.Drawing.PointF)

Converts a point from screen space to control space.

 - Eto.Drawing.PointF PointToScreen(Eto.Drawing.PointF)

Converts a point from control space to screen space

 - Eto.Drawing.RectangleF RectangleToScreen(Eto.Drawing.RectangleF)

Converts a rectangle from screen space to control space.

   ... ... ...

Example: Show type information by assembly in GAC

$ pget.exe asm --type mscorlib System.IO.Path

**** Type Info

 - Name:           Path
 - Full Name:      System.IO.Path
 - Namespace:      System.IO
 - Module:         mscorlib.dll
 - Base Type:      System.Object

*Predicates*

 - Class:          True
 - Abstract Class: True
 - Primitive       False
 - Array:          False
 - Interface       False
 - Enum            False
 - Public          True
 - Visible         True



**** Fields

 - System.Char[] InvalidPathChars

 - System.Char AltDirectorySeparatorChar

 - System.Char DirectorySeparatorChar

 - System.Char PathSeparator

 - System.Char VolumeSeparatorChar

 .. ... ... ...


**** Properties


**** Constructors


**** Instance Methods

 - Public  System.Boolean Equals (System.Object obj)

 - Public  System.Int32 GetHashCode ()

 - Public  System.Type GetType ()

 - Public  System.String ToString ()


**** Static Methods

 - Public Static System.String ChangeExtension (System.String path, System.String extension)

 - Public Static System.String Combine (System.String path1, System.String path2)

 - Public Static System.String GetDirectoryName (System.String path)

 - Public Static System.String GetExtension (System.String path)

 - Public Static System.String GetFileName (System.String path)

 ...  ...  ... ... ...


 - Public Static System.String Combine (System.String[] paths)

 - Public Static System.String Combine (System.String path1, System.String path2, System.String path3)

 - Public Static System.String Combine (System.String path1, System.String path2, System.String path3, System.String path4)
1.5.6.8 Search type methods wich contains a given string
  • $ pget.exe asm --search-method [asmFile] [type] [method]

Example: Search all System.IO.File methods which contains the word 'read':

$ bin/pget.exe asm --search-method mscorlib System.IO.File line

Public Static System.String[] ReadAllLines (System.String path)
Public Static System.String[] ReadAllLines (System.String path, System.Text.Encoding encoding)
Public Static System.Void WriteAllLines (System.String path, System.String[] contents)
Public Static System.Void WriteAllLines (System.String path, System.String[] contents, System.Text.Encoding encoding)
Public Static System.Collections.Generic.IEnumerable`1[System.String] ReadLines (System.String path)
Public Static System.Collections.Generic.IEnumerable`1[System.String] ReadLines (System.String path, System.Text.Encoding encoding)
Public Static System.Void AppendAllLines (System.String path, System.Collections.Generic.IEnumerable`1[System.String] contents)
Public Static System.Void AppendAllLines (System.String path, System.Collections.Generic.IEnumerable`1[System.String] contents, System.Text.Encoding encoding)
Public Static System.Void WriteAllLines (System.String path, System.Collections.Generic.IEnumerable`1[System.String] contents)
Public Static System.Void WriteAllLines (System.String path, System.Collections.Generic.IEnumerable`1[System.String] contents, System.Text.Encoding encoding)


$ bin/pget.exe asm --search-method mscordsflib System.IO.File line
Error: I can't find the file: mscordsflib

$ bin/pget.exe asm --search-method /etc/fstab System.IO.File line
Error: File /etc/fstab is not a .NET assembl
1.5.6.9 Show all exported classes
  • $ pget.exe --class [asmFile]

Example:

$ bin/pget.exe repo --files OxyPlot.Core | grep ".dll"
packages/OxyPlot.Core.1.0.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1+Xamarin.iOS10/OxyPlot.dll
packages/OxyPlot.Core.1.0.0/lib/net45/OxyPlot.dll
packages/OxyPlot.Core.1.0.0/lib/net40-client/OxyPlot.dll
packages/OxyPlot.Core.1.0.0/lib/net40/OxyPlot.dll
packages/OxyPlot.Core.1.0.0/lib/sl5/OxyPlot.dll

$ bin/pget.exe asm --class packages/OxyPlot.Core.1.0.0/lib/net45/OxyPlot.dll
OxyPlot.DelegateViewCommand`1[T]
OxyPlot.ElementCollectionChangedEventArgs`1[T]
OxyPlot.ManipulatorBase`1[T]
OxyPlot.DelegatePlotCommand`1[T]
OxyPlot.Element
OxyPlot.ElementCollection`1[T]
OxyPlot.Model
OxyPlot.TouchTrackerManipulator
OxyPlot.OxySizeExtensions

... ...

OxyPlot.Axes.AngleAxis
OxyPlot.Axes.Axis
OxyPlot.Axes.AxisChangedEventArgs
OxyPlot.Axes.CategoryAxis
OxyPlot.Axes.CategoryColorAxis
OxyPlot.Axes.ColorAxisExtensions
OxyPlot.Axes.LinearColorAxis
OxyPlot.Axes.DateTimeAxis
OxyPlot.Axes.LinearAxis
OxyPlot.Axes.MagnitudeAxis

... ...

OxyPlot.Annotations.Annotation
OxyPlot.Annotations.ArrowAnnotation
OxyPlot.Annotations.EllipseAnnotation
OxyPlot.Annotations.FunctionAnnotation
OxyPlot.Annotations.ImageAnnotation
OxyPlot.Annotations.PathAnnotation
OxyPlot.Annotations.PolylineAnnotation
OxyPlot.Conrec+RendererDelegate
OxyPlot.Reporting.TableOfContents+ContentItem
1.5.6.10 Show all exported non-abstract classes
  • $ pget.exe --classn [asmFile]

Example:

$ bin/pget.exe asm --classn packages/OxyPlot.Core.1.0.0/lib/net45/OxyPlot.dll
OxyPlot.DelegateViewCommand`1[T]
OxyPlot.ElementCollectionChangedEventArgs`1[T]
OxyPlot.DelegatePlotCommand`1[T]
OxyPlot.ElementCollection`1[T]
...
OxyPlot.CodeGenerationAttribute
OxyPlot.CodeGenerator
OxyPlot.OxyPalette
OxyPlot.Decimator
OxyPlot.CohenSutherlandClipping
OxyPlot.OxyPen
OxyPlot.XkcdRenderingDecorator
OxyPlot.OxyKeyGesture
OxyPlot.OxyMouseDownGesture
OxyPlot.OxyMouseWheelGesture
...
OxyPlot.Annotations.EllipseAnnotation
OxyPlot.Annotations.FunctionAnnotation
OxyPlot.Annotations.ImageAnnotation
OxyPlot.Annotations.PolylineAnnotation
OxyPlot.Conrec+RendererDelegate
OxyPlot.Reporting.TableOfContents+ContentItem
1.5.6.11 Show all exported abstract classes
  • $ pget.exe --abstract [asmFile]

Example:

$ bin/pget.exe asm --abstract packages/OxyPlot.Core.1.0.0/lib/net45/OxyPlot.dll
OxyPlot.ManipulatorBase`1[T]
OxyPlot.Element
OxyPlot.Model
OxyPlot.IController
OxyPlot.IViewCommand
OxyPlot.IViewCommand`1[T]
OxyPlot.IView
OxyPlot.IPlotController
OxyPlot.IPlotElement
OxyPlot.IPlotModel
OxyPlot.OxySizeExtensions
OxyPlot.OxyInputEventArgs
...
OxyPlot.HashCodeBuilder
OxyPlot.XmlWriterBase
OxyPlot.BinaryReaderExtensions
OxyPlot.StreamExtensions
OxyPlot.StringHelper
OxyPlot.FractionHelper
...
OxyPlot.Axes.IColorAxis
OxyPlot.Axes.ColorAxisExtensions
OxyPlot.Axes.AxisRendererBase
OxyPlot.Annotations.ShapeAnnotation
OxyPlot.Annotations.TextualAnnotation
OxyPlot.Annotations.Annotation
OxyPlot.Annotations.PathAnnotation
1.5.6.12 Show all exported interfaces
  • $ pget.exe --interface [asmFile]

Example:

$ bin/pget.exe asm --interface packages/OxyPlot.Core.1.0.0/lib/net45/OxyPlot.dll
OxyPlot.IController
OxyPlot.IViewCommand
OxyPlot.IViewCommand`1[T]
OxyPlot.IView
OxyPlot.IPlotController
OxyPlot.IPlotElement
OxyPlot.IPlotModel
OxyPlot.ICodeGenerating
OxyPlot.IDataPointProvider
OxyPlot.IRenderContext
OxyPlot.IExporter
OxyPlot.IImageDecoder
OxyPlot.IImageEncoder
OxyPlot.IPlotView
OxyPlot.Series.IScatterPointProvider
OxyPlot.Series.IStackableSeries
OxyPlot.Reporting.IReportWriter
OxyPlot.Axes.IColorAxis
1.5.6.13 Show all exported namespaces
  • pget.exe asm --namespace [asmFile]

or

  • pget.exe asm --ns [asmFile]

Example:

$ bin/pget.exe asm  --namespace /usr/lib/mono/4.5-api/System.Xml.dll
System.Xml.Xsl.Runtime
System.Xml
System.Xml.XmlConfiguration
System.Xml.Resolvers
System.Xml.Schema
System.Xml.Serialization
System.Xml.Serialization.Advanced
System.Xml.Serialization.Configuration
System.Xml.XPath
System.Xml.Xsl


$ bin/pget.exe asm  -ns /usr/lib/mono/4.5-api/System.Xml.dll
System.Xml.Xsl.Runtime
System.Xml
System.Xml.XmlConfiguration
System.Xml.Resolvers
System.Xml.Schema
System.Xml.Serialization
System.Xml.Serialization.Advanced
System.Xml.Serialization.Configuration
System.Xml.XPath
System.Xml.Xsl
1.5.6.14 Show all types within an exported namespace
  • $ pget.exe asm --namespace [assembly-file or GAC] [namespace]

Example: Query assembly file.

$ bin/pget.exe asm  --namespace /usr/lib/mono/4.5-api/System.Xml.dll
System.Xml.Xsl.Runtime
System.Xml
System.Xml.XmlConfiguration
System.Xml.Resolvers
System.Xml.Schema
System.Xml.Serialization
System.Xml.Serialization.Advanced
System.Xml.Serialization.Configuration
System.Xml.XPath
System.Xml.Xsl

$ bin/pget.exe asm  --namespace /usr/lib/mono/4.5-api/System.Xml.dll System.Xml
System.Xml.ConformanceLevel
System.Xml.DtdProcessing
System.Xml.EntityHandling
System.Xml.NamespaceHandling
System.Xml.NewLineHandling
System.Xml.ReadState
System.Xml.ValidationType
System.Xml.WhitespaceHandling
...
System.Xml.XmlNodeType
System.Xml.XmlQualifiedName
System.Xml.XmlResolver
System.Xml.XmlSecureResolver
System.Xml.XmlUrlResolver
System.Xml.XmlXapResolve


$ bin/pget.exe asm  --type /usr/lib/mono/4.5-api/System.Xml.dll System.Xml.XmlNode

Type Info:

  Name:           XmlNode
  Full Name:      System.Xml.XmlNode
  Namespace:      System.Xml
  Module:         System.Xml.dll
  Base Type:      System.Object

Predicates

  Class:          True
  Abstract Class: True
  Primitive       False
  Array:          False
  Interface       False   
  Enum            False
  Public          True
  Visible         True



Fields
----------------

Properties
----------------
    System.String Name

    System.String Value

    System.Xml.XmlNodeType NodeType

    System.Xml.XmlNode ParentNode

...

Constructors
----------------

Methods
----------------
    System.Xml.XPath.XPathNavigator CreateNavigator()

    System.Xml.XmlNode SelectSingleNode(System.String)

    System.Xml.XmlNode SelectSingleNode(System.String, System.Xml.XmlNamespaceManager)

...

Example: Query assembly in GAC

# Show all namespaces 
#
$ mono bin/Debug/Pget.exe asm --namespace mscorlib
System.Runtime.ConstrainedExecution
Microsoft.Win32.SafeHandles
System
System.Collections.Concurrent
System.Collections
System.Collections.Generic
System.Collections.ObjectModel
System.Diagnostics.CodeAnalysis
System.Diagnostics
System.Diagnostics.Contracts
System.Diagnostics.Contracts.Internal
System.Runtime.CompilerServices
System.Diagnostics.Tracing
System.Globalization
System.IO
System.Reflection
System.Reflection.Emit

... ... ...

# Show all types exported by namespace 
# 
$ mono bin/Debug/Pget.exe asm --namespace mscorlib System.IO
System.IO.BinaryReader
System.IO.BinaryWriter
System.IO.BufferedStream
System.IO.DirectoryNotFoundException
System.IO.DriveNotFoundException
System.IO.EndOfStreamException
System.IO.FileInfo
System.IO.FileLoadException
System.IO.FileNotFoundException
System.IO.FileSystemInfo
System.IO.IOException
System.IO.MemoryStream
System.IO.PathTooLongException
System.IO.Stream

... ... ... ...

System.IO.File
System.IO.FileAccess
System.IO.FileAttributes
System.IO.FileMode
System.IO.FileOptions
System.IO.FileShare
System.IO.FileStream
System.IO.Path
System.IO.SearchOption
System.IO.SeekOrigin
1.5.6.15 Generate documentation about all exported namespaces

This command generates documentation in org-mode markdown format with all types methods, constructors, fields, properties categorized by Namespace and also includes the XML comments.

  • $ pget.exe asm --docgen [asmfile] [output-file]

Example:

Find the package files.

$ bin/pget.exe repo -l
Eto.Forms 2.3.0
Eto.Platform.Gtk 2.3.0
FParsec 1.0.2
FS.INIReader 1.0.3
Microsoft.Web.Xdt 2.1.1
NuGet.Core 2.12.0
OxyPlot.Core 1.0.0
OxyPlot.Pdf 1.0.0
PDFsharp-MigraDoc-GDI 1.32.4334.0

$ bin/pget.exe repo --files Eto.Forms
packages/Eto.Forms.2.3.0/lib/portable-net45+win8+wp8+wpa81+Xamarin.Mac+MonoAndroid10+MonoTouch10+Xamarin.iOS10/Eto.dll
packages/Eto.Forms.2.3.0/lib/portable-net45+win8+wp8+wpa81+Xamarin.Mac+MonoAndroid10+MonoTouch10+Xamarin.iOS10/Eto.xml
packages/Eto.Forms.2.3.0/lib/net45/Eto.dll
packages/Eto.Forms.2.3.0/lib/net45/Eto.xml
packages/Eto.Forms.2.3.0/lib/net40/Eto.dll
packages/Eto.Forms.2.3.0/lib/net40/Eto.xml
packages/Eto.Forms.2.3.0/LICENSE.txt

Generating documentation:

$ bin/pget.exe asm --docgen packages/Eto.Forms.2.3.0/lib/net45/Eto.dll Eto-doc.org

Browser documentation:

$ emacs -Q  Eto-doc.org

Screenshots:

  • The picture below picture shows all namespaces defined in Eto.dll assembly of Eto-forms package.

42cf8c02-f803-4713-a7d1-0e557de60891.png

Figure 1: Eto forms namespaces

  • This picture shows all types within in the Eto.Forms namespace.

84aba9e2-5e75-4903-80af-eb293ab698f4.png

Figure 2: Browsing Eto.Forms namespace.

  • This pictures below show the properties of type Eto.Forms.Form

e6701dd4-4ec6-4e26-a930-9b80299369b4.png

Figure 3: Eto.Forms.Form type information - type predicates.

cce9388f-a5da-4cac-b9c7-b379c52b5494.png

Figure 4: Eto.Forms.Form type information - properties

ccf94d57-77cb-480a-a036-52855ff5c582.png

Figure 5: Eto.Forms.Form type information - methods

1.5.7 Fsproj Helpers

Generate include tags for all packages in project repository (./packages)

  • $ pget.exe fsproj --ref [framework]

Where framework can be

  • net40 for .NET 4.0
  • net45 for .NET 4.5
$ bin/pget.exe fsproj --ref net45
<Reference Include="FParsec">
     <HintPath>packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.dll</HintPath>
</Reference>
<Reference Include="FParsecCS">
     <HintPath>packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.dll</HintPath>
</Reference>
<Reference Include="FS.INIReader">
     <HintPath>packages/FS.INIReader.1.0.3/lib/net45/FS.INIReader.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Web.XmlTransform">
     <HintPath>packages/Microsoft.Web.Xdt.2.1.1/lib/net40/Microsoft.Web.XmlTransform.dll</HintPath>
</Reference>
<Reference Include="NuGet.Core">
     <HintPath>packages/NuGet.Core.2.12.0/lib/net40-Client/NuGet.Core.dll</HintPath>
</Reference>
<Reference Include="OxyPlot">
     <HintPath>packages/OxyPlot.Core.1.0.0/lib/net40/OxyPlot.dll</HintPath>
</Reference>
<Reference Include="OxyPlot.Pdf">
     <HintPath>packages/OxyPlot.Pdf.1.0.0/lib/net40/OxyPlot.Pdf.dll</HintPath>
</Reference>
...

1.5.8 F# FSharp Assembly Introspection

1.5.8.1 Find F# assemblies in a given path
  • $ pget.exe fsh --find-dll [path]

It searches all assemblies (*.dll files) in a given Path which contains at least a F# module.

$ mono obj/Debug/Pget.exe fsh --find-dll .
./bin/Debug/FSharp.Core.dll
./packages/FParsec.1.0.2/lib/net40-client/FParsec.dll
./packages/FParsec.1.0.2/lib/net40-client/FParsecCS.dll
./packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsec.dll
./packages/FParsec.1.0.2/lib/portable-net45+netcore45+wpa81+wp8/FParsecCS.dll
./packages/FS.INIReader.1.0.3/lib/net45/FS.INIReader.dll
./src/dummy.dll
1.5.8.2 Display all F# public modules
  • $ pget.exe fsh --modules [asmFile]
$ mono obj/Debug/Pget.exe fsh --modules ./packages/FParsec.1.0.2/lib/net40-client/FParsec.dll

FParsec.CharParsers
FParsec.Primitives
FParsec.Error
FParsec.StaticMapping
FParsec.InternalsModule

$ mono obj/Debug/Pget.exe fsh --modules /home/arch/nuget/FSharp.Charting.Gtk.0.90.14/lib/net40/FSharp.Charting.Gtk.dll

FSharp.Charting._ChartStyleExtensions
FSharp.Charting.ChartTypes
1.5.8.3 Display F# public and private modules
$ mono obj/Debug/Pget.exe fsh  --modules /home/arch/nuget/FSharp.Charting.Gtk.0.90.14/lib/net40/FSharp.Charting.Gtk.dll
FSharp.Charting._ChartStyleExtensions
FSharp.Charting.ChartTypes

$ mono obj/Debug/Pget.exe fsh  --modules all /home/arch/nuget/FSharp.Charting.Gtk.0.90.14/lib/net40/FSharp.Charting.Gtk.dll
System.AssemblyVersionInformation
FSharp.Charting._ChartStyleExtensions
FSharp.Charting.ChartTypes
FSharp.Charting.KeyConversions
FSharp.Charting.NotifySeq
FSharp.Charting.Seq

1.5.9 XML tools

1.5.9.1 Display help for xml commands   help
  • $ pget.exe xml
$ bin/pget.exe xml 

  XML query commands.

    xml --show [xmluri]            Show formatted xml human-readable output from uri or file.
    xml --show [xmluri] [file]     Export [xmluri] (file or url) to a xml human-readable file.

    xml --struct [xmluri]          Show xml structure - tags hierarchy
    xml --struct [xmluri] attr     Show xml structure tags hierarchy with attributes names.
    xml --struct [xmluri] ns       Show xml structure tags hierarchy with namespaces


    xml -ns                                  Show all XML namespaces 
    xml --namespace                          Show all XML namespaces


    xml --xvalue [xpath] [xmluri]                 Query xml nodes using xpath and show its values.
    xml --xtext  [xpath] [xmluri]                 Query xml nodes using xpath and show its texts.
    xml --xtext --nons [xpath] [xmluri]           Query xml nodes using xpath and show its texts ignoring namespaces.
    xml --xattr  [xpath] [attr] [xmluri]          Query xml nodes using xpath and show the values of a node attribute.
    xml --xattr  --nons [xpath] [attr] [xmluri]   Similar to command above but ignore namespaces.
1.5.9.2 Display XML in human-readable format from URI/URL or file
  • $ pget.exe xml --show [xmluri]

Examples:

Display XML from file:

$ bin/pget.exe xml --show  infoq.rss
<?xml version="1.0" encoding="utf-16"?>
<rss xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>InfoQ</title>
    <link>http://www.infoq.com</link>
    <description>InfoQ feed</description>
    <item>
      <title>Presentation: Spring and Big Data</title>
      <link>http://www.infoq.com/presentations/big-data-spring?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global</link>
      <description>&lt;img src="http://www.infoq.com/resource/presentations/big-data-spring/en/mediumimage/tombig.JPG"/&gt;&lt;p&gt;Thomas Risberg discusses developing big data pipelines with Spring, focusing around the code needed and he also covers how to set up a test environment both locally and in the cloud.&lt;/p&gt; &lt;i&gt;By Thomas Risberg&lt;/i&gt;</description>
      <category>Java</category>
      <category>Spring</category>
      <category>Languages</category>
... ... ... ... ... ... ... 

      <dc:creator>Jie Yu</dc:creator>
      <dc:date>2017-01-07T18:22:00Z</dc:date>
      <dc:identifier>/presentations/mesos-api/en</dc:identifier>
    </item>
    <item>
      <title>Presentation: Building a Microservices Platform with Kubernetes</title>
      <link>http://www.infoq.com/presentations/microservices-kubernetes?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global</link>
      <description>&lt;img src="http://www.infoq.com/resource/presentations/microservices-kubernetes/en/mediumimage/Matbig.JPG"/&gt;&lt;p&gt;Matthew Mark Miller discusses Kubernetes’ primitives and microservices patterns on top of them, including rolling deployments, stateful services and adding behaviors via sidecars.&lt;/p&gt; &lt;i&gt;By Matthew Mark Miller&lt;/i&gt;</description>
      <category>Conferences</category>
      <category>Deployment</category>
      <category>QCon</category>
      <category>Architecture</category>
      <category>Cloud Computing</category>
      <category>DevOps</category>
      <category>Architecture &amp; Design</category>
      <category>Microservices</category>
      <category>Kubernetes</category>
      <category>Containers</category>
      <category>QCon San Francisco 2016</category>
      <category>presentation</category>
      <pubDate>Sat, 07 Jan 2017 16:37:00 GMT</pubDate>
      <guid>http://www.infoq.com/presentations/microservices-kubernetes?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global</guid>
      <dc:creator>Matthew Mark Miller</dc:creator>
      <dc:date>2017-01-07T16:37:00Z</dc:date>
      <dc:identifier>/presentations/microservices-kubernetes/en</dc:identifier>
    </item>
  </channel>
</rss>

Display XML from URL:

$ bin/pget.exe xml --show "https://www.infoq.com/feed?token=WSVCFU3gCRvgXaLKxLiHKq90pV5PnH1z"

<?xml version="1.0" encoding="utf-16"?>
<rss xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>InfoQ</title>
    <link>http://www.infoq.com</link>
    <description>InfoQ feed</description>
    <item>
      <title>Presentation: Spring and Big Data</title>
      <link>http://www.infoq.com/presentations/big-data-spring?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global</link>

...  ... ... 

      <category>Containers</category>
      <category>QCon San Francisco 2016</category>
      <category>presentation</category>
      <pubDate>Sat, 07 Jan 2017 16:37:00 GMT</pubDate>
      <guid>http://www.infoq.com/presentations/microservices-kubernetes?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global</guid>
      <dc:creator>Matthew Mark Miller</dc:creator>
      <dc:date>2017-01-07T16:37:00Z</dc:date>
      <dc:identifier>/presentations/microservices-kubernetes/en</dc:identifier>
    </item>
  </channel>
</rss>
1.5.9.3 Save XML in human-readable format from file or URI to a new file.
  • $ pget.exe --show xmluri xmlfile

Examples

Save xml from url to a file:

$ bin/pget.exe xml --show https://www.infoq.com/feed?token=WSVCFU3gCRvgXaLKxLiHKq90pV5PnH1z infoq.rss

$ bin/pget.exe xml --show infoq.rss
<?xml version="1.0" encoding="utf-16"?>
<rss xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>InfoQ</title>
    <link>http://www.infoq.com</link>
    <description>InfoQ feed</description>
    <item>
      <title>Presentation: Spring and Big Data</title>
      <link>http://www.infoq.com/presentations/big-data-spring?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global</link>
      <description>&lt;img src="http://www.infoq.com/resource/presentations/big-data-spring/en/mediumimage/tombig.JPG"/&gt;&lt;p&gt;Thomas Risberg discusses developing big data pipelines with Spring, focusing around the code needed and he also covers how to set up a test environment both locally and in the cloud.&lt;/p&gt; &lt;i&gt;By Thomas Risberg&lt;/i&gt;</description>
      <category>Java</category>

 ... ... ... ... ... ... 

      <description>&lt;img src="http://www.infoq.com/resource/presentations/mesos-api/en/mediumimage/Jiebig.JPG"/&gt;&lt;p&gt;Jie Yu gives an overview of Mesos and its API which allows users to deploy stateless and stateful services. He discusses how containers are managed in Mesos, the future of container support in Mesos, and shows some of the new container networking and storage features that have been added recently.&lt;/p&gt; &lt;i&gt;By Jie Yu&lt;/i&gt;</description>
      <category>Conferences</category>
      <category>Orchestration</category>
      <category>QCon</category>
      <category>Cloud Computing</category>
      <category>DevOps</category>
      <category>Infrastructure</category>
      <category>Mesos</category>
      <category>Architecture &amp; Design</category>
      <category>Containers</category>
      <category>QCon San Francisco 2016</category>
      <category>presentation</category>
      <pubDate>Sat, 07 Jan 2017 18:22:00 GMT</pubDate>
      <guid>http://www.infoq.com/presentations/mesos-api?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global</guid>
      <dc:creator>Jie Yu</dc:creator>
      <dc:date>2017-01-07T18:22:00Z</dc:date>
      <dc:identifier>/presentations/mesos-api/en</dc:identifier>
    </item>
    <item>
      <title>Presentation: Building a Microservices Platform with Kubernetes</title>
      <link>http://www.infoq.com/presentations/microservices-kubernetes?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global</link>
      <description>&lt;img src="http://www.infoq.com/resource/presentations/microservices-kubernetes/en/mediumimage/Matbig.JPG"/&gt;&lt;p&gt;Matthew Mark Miller discusses Kubernetes’ primitives and microservices patterns on top of them, including rolling deployments, stateful services and adding behaviors via sidecars.&lt;/p&gt; &lt;i&gt;By Matthew Mark Miller&lt;/i&gt;</description>
      <category>Conferences</category>
      <category>Deployment</category>
      <category>QCon</category>
      <category>Architecture</category>
      <category>Cloud Computing</category>
      <category>DevOps</category>
      <category>Architecture &amp; Design</category>
      <category>Microservices</category>
      <category>Kubernetes</category>
      <category>Containers</category>
      <category>QCon San Francisco 2016</category>
      <category>presentation</category>
      <pubDate>Sat, 07 Jan 2017 16:37:00 GMT</pubDate>
      <guid>http://www.infoq.com/presentations/microservices-kubernetes?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global</guid>
      <dc:creator>Matthew Mark Miller</dc:creator>
      <dc:date>2017-01-07T16:37:00Z</dc:date>
      <dc:identifier>/presentations/microservices-kubernetes/en</dc:identifier>
    </item>
  </channel>
</rss>
1.5.9.4 Show XML all namespaces
  • $ pget.exe --namespace [xmluri]

or

  • $ pget.exe --ns [xmluri]

Example:

$ bin/pget.exe xml --namespace pget-exe.fsproj 
Prefix = 
Uri    = http://schemas.microsoft.com/developer/msbuild/2003

$ bin/pget.exe xml --namespace infoq.rss 
Prefix = 
Uri    = 

Prefix = dc
Uri    = http://purl.org/dc/elements/1.1/


$ bin/pget.exe xml -ns eurofxref-daily.xml 
Prefix = gesmes
Uri    = http://www.gesmes.org/xml/2002-08-01

Prefix = 
Uri    = http://www.ecb.int/vocabulary/2002-08-01/eurofxref

$ bin/pget.exe xml --show eurofxref-daily.xml

<?xml version="1.0" encoding="utf-16"?>
<gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
  <gesmes:subject>Reference rates</gesmes:subject>
  <gesmes:Sender>
    <gesmes:name>European Central Bank</gesmes:name>
  </gesmes:Sender>
  <Cube>
    <Cube time="2017-01-09">
      <Cube currency="USD" rate="1.0516" />
      <Cube currency="JPY" rate="122.66" />
      <Cube currency="BGN" rate="1.9558" />
      <Cube currency="CZK" rate="27.021" />
      <Cube currency="DKK" rate="7.4339" />
      <Cube currency="GBP" rate="0.86660" />
      <Cube currency="HUF" rate="308.21" />
      <Cube currency="PLN" rate="4.3777" />
      <Cube currency="RON" rate="4.5016" />
      <Cube currency="SEK" rate="9.5533" />
      <Cube currency="CHF" rate="1.0721" />
      <Cube currency="NOK" rate="9.0193" />
      <Cube currency="HRK" rate="7.5701" />
      <Cube currency="RUB" rate="62.8383" />
      <Cube currency="TRY" rate="3.9210" />
      <Cube currency="AUD" rate="1.4357" />
      <Cube currency="BRL" rate="3.3780" />
      <Cube currency="CAD" rate="1.3954" />
      <Cube currency="CNY" rate="7.2958" />
      <Cube currency="HKD" rate="8.1562" />
      <Cube currency="IDR" rate="14033.73" />
      <Cube currency="ILS" rate="4.0480" />
      <Cube currency="INR" rate="71.6875" />
      <Cube currency="KRW" rate="1266.33" />
      <Cube currency="MXN" rate="22.3940" />
      <Cube currency="MYR" rate="4.7080" />
      <Cube currency="NZD" rate="1.5067" />
      <Cube currency="PHP" rate="52.188" />
      <Cube currency="SGD" rate="1.5135" />
      <Cube currency="THB" rate="37.574" />
      <Cube currency="ZAR" rate="14.4127" />
    </Cube>
  </Cube>
</gesmes:Envelope>
1.5.9.5 Show XML tags hierarchy
  • $ pget.exe xml --struct [xmluri]

Example:

$ bin/pget.exe xml --struct infoq.rss
(0.0) channel
    (1.0) title
        (2.0) #text
    (1.1) link
        (2.0) #text
    (1.2) description
        (2.0) #text
    (1.3) item
        (2.0) title
            (3.0) #text
        (2.1) link
            (3.0) #text
        (2.2) description
            (3.0) #text
        (2.3) category
            (3.0) #text
        (2.4) category
            (3.0) #text
        (2.5) category
            (3.0) #text
        (2.6) category
            (3.0) #text
        (2.7) category
            (3.0) #text
        (2.8) category
            (3.0) #text
        (2.9) category
            (3.0) #text
        (2.10) category
            (3.0) #text
        (2.11) category
            (3.0) #text
        (2.12) category
            (3.0) #text
        (2.13) category
            (3.0) #text
        (2.14) category
            (3.0) #text
        (2.15) category
            (3.0) #text
        (2.16) category
            (3.0) #text
        (2.17) category
            (3.0) #text
        (2.18) pubDate
            (3.0) #text
        (2.19) guid
            (3.0) #text
        (2.20) dc:creator
            (3.0) #text
        (2.21) dc:date
            (3.0) #text
        (2.22) dc:identifier
            (3.0) #text
    (1.4) item
        (2.0) title
            (3.0) #text
        (2.1) link
            (3.0) #text
        (2.2) description
            (3.0) #text
        (2.3) category
            (3.0) #text
        (2.4) category
            (3.0) #text
        (2.5) category
            (3.0) #text
        (2.6) category
            (3.0) #text
        (2.7) category
            (3.0) #text
        (2.8) category
            (3.0) #text
        (2.9) category
            (3.0) #text
        (2.10) category
            (3.0) #text
        (2.11) category
            (3.0) #text
        (2.12) category
            (3.0) #text
        (2.13) category
            (3.0) #text
        (2.14) category
            (3.0) #text
        (2.15) pubDate
            (3.0) #text
        (2.16) guid
            (3.0) #text
        (2.17) dc:creator
            (3.0) #text
        (2.18) dc:date
            (3.0) #text
        (2.19) dc:identifier
            (3.0) #text
    (1.5) item
        (2.0) title
            (3.0) #text
        (2.1) link
            (3.0) #text
        (2.2) description
            (3.0) #text
        (2.3) category
            (3.0) #text
        (2.4) category
            (3.0) #text
        (2.5) category
            (3.0) #text
        (2.6) category
            (3.0) #text
        (2.7) category
            (3.0) #text
        (2.8) category
            (3.0) #text
        (2.9) category
            (3.0) #text
        (2.10) category
            (3.0) #text
        (2.11) category
            (3.0) #text
        (2.12) category
            (3.0) #text
        (2.13) category
            (3.0) #text
        (2.14) category
            (3.0) #text
        (2.15) category
            (3.0) #text
        (2.16) pubDate
            (3.0) #text
        (2.17) guid
            (3.0) #text
        (2.18) dc:creator
            (3.0) #text
        (2.19) dc:date
            (3.0) #text
        (2.20) dc:identifier
            (3.0) #text
    (1.6) item
        (2.0) title
            (3.0) #text
        (2.1) link
            (3.0) #text
        (2.2) description
            (3.0) #text
        (2.3) category
            (3.0) #text
        (2.4) category
            (3.0) #text
        (2.5) category
            (3.0) #text
        (2.6) category
            (3.0) #text
        (2.7) category
            (3.0) #text
        (2.8) category
            (3.0) #text
        (2.9) category
            (3.0) #text
        (2.10) category
            (3.0) #text
        (2.11) category
            (3.0) #text
        (2.12) category
            (3.0) #text
        (2.13) category
            (3.0) #text
        (2.14) category
            (3.0) #text
        (2.15) category
            (3.0) #text
        (2.16) category
            (3.0) #text
        (2.17) pubDate
            (3.0) #text
        (2.18) guid
            (3.0) #text
        (2.19) dc:creator
            (3.0) #text
        (2.20) dc:date
            (3.0) #text
        (2.21) dc:identifier
            (3.0) #text
... ...  .... ....

    (1.17) item
        (2.0) title
            (3.0) #text
        (2.1) link
            (3.0) #text
        (2.2) description
            (3.0) #text
        (2.3) category
            (3.0) #text
        (2.4) category
            (3.0) #text
... ... ...
1.5.9.6 Show XML tags hierarchy with attribute names
  • $ pget.exe xml --struct attr [xmlfile]

Example:

$ bin/pget.exe xml --struct attr pget-exe.fsproj 

(0.0) Import [Project; Condition]
(0.1) PropertyGroup []
    (1.0) Configuration [Condition]
        (2.0) #text []
    (1.1) Platform [Condition]
        (2.0) #text []
    (1.2) SchemaVersion []
        (2.0) #text []
    (1.3) ProjectGuid []
        (2.0) #text []
    (1.4) OutputType []
        (2.0) #text []
    (1.5) RootNamespace []
        (2.0) #text []
    (1.6) AssemblyName []
        (2.0) #text []
    (1.7) TargetFrameworkVersion []
        (2.0) #text []
    (1.8) #text []
    (1.9) AutoGenerateBindingRedirects []
        (2.0) #text []
    (1.10) TargetFSharpCoreVersion []
        (2.0) #text []
    (1.11) Name []
        (2.0) #text []
(0.2) PropertyGroup [Condition]
    (1.0) DebugSymbols []
        (2.0) #text []
    (1.1) DebugType []
        (2.0) #text []
    (1.2) Optimize []
        (2.0) #text []
    (1.3) Tailcalls []
        (2.0) #text []
    (1.4) OutputPath []
        (2.0) #text []
    (1.5) DefineConstants []
        (2.0) #text []
    (1.6) WarningLevel []
        (2.0) #text []
    (1.7) #comment []
(0.3) PropertyGroup [Condition]
    (1.0) DebugType []
        (2.0) #text []
    (1.1) Optimize []
        (2.0) #text []
    (1.2) Tailcalls []
        (2.0) #text []
    (1.3) OutputPath []
        (2.0) #text []
    (1.4) DefineConstants []
        (2.0) #text []
    (1.5) WarningLevel []
        (2.0) #text []
    (1.6) DocumentationFile []
        (2.0) #text []
    (1.7) OtherFlags []
        (2.0) #text []
(0.4) #comment []
(0.5) ItemGroup []
    (1.0) Reference [Include]
    (1.1) Reference [Include]
        (2.0) Private []
            (3.0) #text []
    (1.2) Reference [Include]
    (1.3) Reference [Include]
    (1.4) Reference [Include]
    (1.5) Reference [Include]
    (1.6) Reference [Include]
    (1.7) Reference [Include]
    (1.8) #comment []
    (1.9) Reference [Include]
        (2.0) HintPath []
            (3.0) #text []
    (1.10) Reference [Include]
        (2.0) HintPath []
            (3.0) #text []
(0.6) #comment []
(0.7) ItemGroup []
    (1.0) Compile [Include]
    (1.1) Compile [Include]
    (1.2) Compile [Include]
    (1.3) Compile [Include]
    (1.4) Compile [Include]
(0.8) PropertyGroup []
    (1.0) MinimumVisualStudioVersion [Condition]
        (2.0) #text []
(0.9) Choose []
    (1.0) When [Condition]
        (2.0) PropertyGroup []
            (3.0) FSharpTargetsPath []
                (4.0) #text []
    (1.1) Otherwise []
        (2.0) PropertyGroup [Condition]
            (3.0) FSharpTargetsPath []
                (4.0) #text []
(0.10) Import [Project; Condition]
(0.11) #comment []
1.5.9.7 Show XML tags hintpath with namespaces
  • $ pget.exe xml --struct ns [xmluri]

Example:

$ bin/pget.exe xml --struct ns pget-exe.fsproj

(0.0) Import / http://schemas.microsoft.com/developer/msbuild/2003
(0.1) PropertyGroup / http://schemas.microsoft.com/developer/msbuild/2003
    (1.0) Configuration / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.1) Platform / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.2) SchemaVersion / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.3) ProjectGuid / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.4) OutputType / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.5) RootNamespace / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.6) AssemblyName / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.7) TargetFrameworkVersion / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.8) #text / 
    (1.9) AutoGenerateBindingRedirects / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.10) TargetFSharpCoreVersion / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.11) Name / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
(0.2) PropertyGroup / http://schemas.microsoft.com/developer/msbuild/2003
    (1.0) DebugSymbols / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.1) DebugType / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.2) Optimize / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.3) Tailcalls / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.4) OutputPath / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.5) DefineConstants / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.6) WarningLevel / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.7) #comment / 
(0.3) PropertyGroup / http://schemas.microsoft.com/developer/msbuild/2003
    (1.0) DebugType / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.1) Optimize / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.2) Tailcalls / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.3) OutputPath / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.4) DefineConstants / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.5) WarningLevel / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.6) DocumentationFile / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
    (1.7) OtherFlags / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
(0.4) #comment / 
(0.5) ItemGroup / http://schemas.microsoft.com/developer/msbuild/2003
    (1.0) Reference / http://schemas.microsoft.com/developer/msbuild/2003
    (1.1) Reference / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) Private / http://schemas.microsoft.com/developer/msbuild/2003
            (3.0) #text / 
    (1.2) Reference / http://schemas.microsoft.com/developer/msbuild/2003
    (1.3) Reference / http://schemas.microsoft.com/developer/msbuild/2003
    (1.4) Reference / http://schemas.microsoft.com/developer/msbuild/2003
    (1.5) Reference / http://schemas.microsoft.com/developer/msbuild/2003
    (1.6) Reference / http://schemas.microsoft.com/developer/msbuild/2003
    (1.7) Reference / http://schemas.microsoft.com/developer/msbuild/2003
    (1.8) #comment / 
    (1.9) Reference / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) HintPath / http://schemas.microsoft.com/developer/msbuild/2003
            (3.0) #text / 
    (1.10) Reference / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) HintPath / http://schemas.microsoft.com/developer/msbuild/2003
            (3.0) #text / 
(0.6) #comment / 
(0.7) ItemGroup / http://schemas.microsoft.com/developer/msbuild/2003
    (1.0) Compile / http://schemas.microsoft.com/developer/msbuild/2003
    (1.1) Compile / http://schemas.microsoft.com/developer/msbuild/2003
    (1.2) Compile / http://schemas.microsoft.com/developer/msbuild/2003
    (1.3) Compile / http://schemas.microsoft.com/developer/msbuild/2003
    (1.4) Compile / http://schemas.microsoft.com/developer/msbuild/2003
(0.8) PropertyGroup / http://schemas.microsoft.com/developer/msbuild/2003
    (1.0) MinimumVisualStudioVersion / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) #text / 
(0.9) Choose / http://schemas.microsoft.com/developer/msbuild/2003
    (1.0) When / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) PropertyGroup / http://schemas.microsoft.com/developer/msbuild/2003
            (3.0) FSharpTargetsPath / http://schemas.microsoft.com/developer/msbuild/2003
                (4.0) #text / 
    (1.1) Otherwise / http://schemas.microsoft.com/developer/msbuild/2003
        (2.0) PropertyGroup / http://schemas.microsoft.com/developer/msbuild/2003
            (3.0) FSharpTargetsPath / http://schemas.microsoft.com/developer/msbuild/2003
                (4.0) #text / 
(0.10) Import / http://schemas.microsoft.com/developer/msbuild/2003
(0.11) #comment /
1.5.9.8 Query xml nodes using xpath and show its texts
  • $ xml --xtext [xpath] [xmluri]

Example:

$ bin/pget.exe xml --xtext "//item/title" infoq.rss 
Presentation: Spring and Big Data

Presentation: Data Science-powered Apps for the Internet of Things

Amazon Introduces Rekognition for Image Analysis

Presentation: Building Resilient and Evolutionary Data Microservices

Article: Chaos Engineering

Presentation: Task Madness - Modern on Demand Processing

Presentation: Data Microservices in the Cloud

Presentation: Secure & Dynamic App Config at GapTech with Spring Cloud, Vault and Consul

Presentation: Consumer Driven Contracts and Your Microservice Architecture

Presentation: Amazon ECS: a Platform to Run Production Containers

Presentation: Elastic Efficient Execution of Varied Containers

Presentation: The Past, Present, and Future of JavaScript

Multiple DNS Providers to Mitigate DDoS Attacks

Presentation: Mesos: A State-of-the-art Container Orchestrator

Presentation: Building a Microservices Platform with Kubernetes
$ bin/pget.exe xml --xtext "//item/link" infoq.rss 
http://www.infoq.com/presentations/big-data-spring?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/iot-human-activities?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/news/2017/01/AWS-Rekognition?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/spring-schema-repository?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/articles/chaos-engineering?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/spring-cloud-task?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/spring-cloud-dataflow?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/gaptech-spring-cloud?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/spring-cloud-contract-verifier?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/amazon-ecs?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/netflix-containers-2016?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/tc39-es2015?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/news/2017/01/dns-providers-ddos-attacks?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/mesos-api?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

http://www.infoq.com/presentations/microservices-kubernetes?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global
1.5.9.9 Query xml nodes using xpath and show a node attribute
  • $ pget.exe xml --xattr [xpath] [attribute] [xmluri]

Example:

arch@arch-pc 14:22 /run/media/arch/transfer/projects/pget.fsharp
$ bin/pget.exe xml --xattr "//book[@id]" id xml/catalog.xml 
bk101

bk102

bk103

bk104

bk105

bk106

bk107

bk108

bk109

bk110

bk111

bk112



$ bin/pget.exe xml --show xml/catalog.xml 
<?xml version="1.0" encoding="utf-16"?>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <title>XML Developer's Guide</title>
    <genre>Computer</genre>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
    <description>An in-depth look at creating applications 
      with XML.</description>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
    <description>A former architect battles corporate zombies, 
      an evil sorceress, and her own childhood to become queen 
      of the world.</description>
  </book>
...  ... ... ... 

$ bin/pget.exe xml --xtext "//book/author" xml/catalog.xml 
Gambardella, Matthew

Ralls, Kim

Corets, Eva

Corets, Eva

Corets, Eva

Randall, Cynthia

Thurman, Paula

Knorr, Stefan

Kress, Peter

O'Brien, Tim

O'Brien, Tim

Galos, Mike
1.5.9.10 Query xml nodes using xpath and show a node attribute ignoring namespaces
  • $ pget.exe xml --xattr --nons [xpath] [attribute] [xmluri]

Example:

$ bin/pget.exe xml --struct attr xml/eurofxref-daily.xml 
(0.0) gesmes:subject []
    (1.0) #text []
(0.1) gesmes:Sender []
    (1.0) gesmes:name []
        (2.0) #text []
(0.2) Cube []
    (1.0) Cube [time]
        (2.0) Cube [currency; rate]
        (2.1) Cube [currency; rate]
        (2.2) Cube [currency; rate]
        (2.3) Cube [currency; rate]
        (2.4) Cube [currency; rate]
        (2.5) Cube [currency; rate]
        (2.6) Cube [currency; rate]
        (2.7) Cube [currency; rate]
        (2.8) Cube [currency; rate]
        (2.9) Cube [currency; rate]
        (2.10) Cube [currency; rate]
        (2.11) Cube [currency; rate]
        (2.12) Cube [currency; rate]
        (2.13) Cube [currency; rate]
        (2.14) Cube [currency; rate]
        (2.15) Cube [currency; rate]
        (2.16) Cube [currency; rate]
        (2.17) Cube [currency; rate]
        (2.18) Cube [currency; rate]
        (2.19) Cube [currency; rate]
        (2.20) Cube [currency; rate]
        (2.21) Cube [currency; rate]
        (2.22) Cube [currency; rate]
        (2.23) Cube [currency; rate]
        (2.24) Cube [currency; rate]
        (2.25) Cube [currency; rate]
        (2.26) Cube [currency; rate]
        (2.27) Cube [currency; rate]
        (2.28) Cube [currency; rate]
        (2.29) Cube [currency; rate]
        (2.30) Cube [currency; rate]

# It doens't work because XML namespaces
#
$ bin/pget.exe xml --xattr  "//Cube//Cube[@currency]" currency xml/eurofxref-daily.xml 

$ bin/pget.exe xml --xattr --nons "//Cube//Cube[@currency]" currency xml/eurofxref-daily.xml 
USD

JPY

BGN

CZK

DKK
...

NZD

PHP

SGD

THB

ZAR


$ bin/pget.exe xml --xattr --nons  "//Cube//Cube[@currency]" rate xml/eurofxref-daily.xml 
1.0516

122.66

1.9558

27.021

7.4339

0.86660

308.21

4.3777

.. ... ... ... ...


4.7080

1.5067

52.188

1.5135

37.574

14.4127
1.5.9.11 Query xml nodes using xpath and show all attributes
  • $ pget.exe xml --xattr-all [xpath] [xmluri]

or

  • $ pget.exe xml --xattr-all --nons [xpath] [xmluri] - To ignore XML namespaces.

Example:

$ cat xml/eurofxref-daily.xml

<?xml version="1.0" encoding="UTF-8"?>
<gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
  <gesmes:subject>Reference rates</gesmes:subject>
  <gesmes:Sender>
    <gesmes:name>European Central Bank</gesmes:name>
  </gesmes:Sender>
  <Cube>
    <Cube time="2017-01-09">
      <Cube currency="USD" rate="1.0516" />
      <Cube currency="JPY" rate="122.66" />
      <Cube currency="BGN" rate="1.9558" />
      <Cube currency="CZK" rate="27.021" />
            ...   ... ... ... ... ...
      <Cube currency="THB" rate="37.574" />
      <Cube currency="ZAR" rate="14.4127" />
    </Cube>
  </Cube>
  </gesmes:Envelope>


# It doesn't work beacause XML namespaces
#
$ bin/pget.exe xml --xattr-all "//Cube//Cube[@currency]" xml/eurofxref-daily.xml 

# Now it works. Ignore XML namespace 
$ bin/pget.exe xml --xattr-all --nons "//Cube//Cube[@currency]" xml/eurofxref-daily.xml 
currency    rate    
USD 1.0516  
JPY 122.66  
BGN 1.9558  
CZK 27.021  
DKK 7.4339  
GBP 0.86660 
HUF 308.21  
... ... ... 
THB 37.574  
ZAR 14.4127 

# Extract directly from URL 
#
#------------------------------------------
$ bin/pget.exe xml --xattr-all --nons "//Cube//Cube[@currency]" https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
currency    rate    
USD 1.0592  
JPY 120.55  
BGN 1.9558  
CZK 27.021  
DKK 7.4337  
GBP 0.86300 
HUF 309.55  
PLN 4.3091  
RON 4.5290  
SEK 9.5335  
CHF 1.0694  
NOK 8.9673  
HRK 7.4090  
RUB 61.5602 
TRY 3.9328  
AUD 1.3937  
BRL 3.2896  
CAD 1.4183  
CNY 7.3050  
HKD 8.2235  
IDR 14138.32    
ILS 3.8950  
INR 70.5955 
KRW 1222.76 
MXN 20.6859 
MYR 4.7113  
NZD 1.5079  
PHP 53.251  
SGD 1.4936  
THB 37.104  
ZAR 13.7644

1.5.10 Misc - Tools

1.5.10.1 Show System Information
  • $ pget.exe --system

Windows:

e:/projects/pget.fsharp $ bin/pget.exe --system
System Information

  System Version            v4.0.30319
  System Directory          C:\Windows\system32
  Runtime Directory         C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
  System Configuration File C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config
  OS Version                Microsoft Windows NT 6.2.9200.0
  Machine Name              DESKTOP-FDD38CU
  64-bit Operating system   True
  Number of processors      4

Special Directories

  System.Environment.SpecialFolder.CommonApplicationData 
  C:\ProgramData

  System.Environment.SpecialFolder.ApplicationData       
  C:\Users\arch\AppData\Roaming

  System.Environment.SpecialFolder.LocalApplicationData  
  C:\Users\arch\AppData\Local

Linux:

$ bin/pget.exe --system
System Information

  System Version            v4.0.30319
  System Directory          
  Runtime Directory         /usr/lib/mono/4.5
  System Configuration File /etc/mono/4.5/machine.config
  OS Version                Unix 4.8.17.1
  Machine Name              arch-pc
  64-bit Operating system   True
  Number of processors      4

Special Directories

  System.Environment.SpecialFolder.CommonApplicationData 
  /usr/share

  System.Environment.SpecialFolder.ApplicationData       
  /home/arch/.config

  System.Environment.SpecialFolder.LocalApplicationData  
  /home/arch/.local/share
1.5.10.2 Generate GUID - Global Unique Identifier
  • $ pget.exe --guid

Example:

$ bin/pget.exe --guid
c4969f50-7a17-4f8f-ac9d-d783a9a8f8d4
1.5.10.3 Open Online Documentation
  • $ pget.exe --doc

It opens pget web site.

1.6 TODO Todolist

  • [ ] - Improve display of F# types.
  • [ ] - Improve command line argument handling.
  • [X] - Improve error handling - Exceptions and result types.
  • [X] - Query types and XML documentation.
  • [X] - Add more xml query commands
  • [X] - Add commands to query GAC - Global Assembly Cache libraries
  • [ ] - Add commands to search types and namespaces
  • [ ] - Add more commands to manipulate and query fsproj files.
  • [ ] - Create an Emacs client for pget.exe.
  • [ ] - MAYBE: support to a cached nuget repository.
  • [ ] - MAYBE: interactive shell.
  • [ ] - MAYBE: generate html file with all exported types information.
  • [X] - MAYBE: generate org-mode file with all exported types information.
  • [ ] - Add better html layout for documentation.

2 Pget.dll

Pget.dll is a F# library that provides a high level interface and functional wrappers to NuGet.Core API.

Author: Caio Rodrigues

Created: 2017-03-06 seg 13:22

Emacs 25.1.1 (Org mode 8.2.10)

Validate