You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by Mario Inchiosa <mi...@gmail.com> on 2016/09/26 23:43:11 UTC

.NET Portability Analyzer

Here is a quick example of running the .NET Portability Analyzer against
REEF assemblies from a Windows PowerShell command line:

# Download ApiPort.zip from
https://github.com/Microsoft/dotnet-apiport/releases and extract the files

# Usage info:
https://github.com/Microsoft/dotnet-apiport/blob/master/docs/HowTo/Introduction.md

# Edit the following paths as needed on your machine
cd C:\reef11
$reefdir=".\reef\"  #your top level reef directory
$ApiPortdir = "C:\Users\marinch\Downloads\ApiPort\ApiPort" #your command
line portability analyzer directory containing ApiPort.exe

# List the currently available API targets
$cmd = ${ApiPortdir} + "\ApiPort.exe listTargets"
Invoke-Expression $cmd

# Analyze compatibility with .NET Core App Version 1.0
$cmd = ${ApiPortdir} + "\ApiPort.exe analyze -f " + ${reefdir}
+"\lang\cs\bin\. -r excel -t `".NET Core App, Version=1.0`" "
Invoke-Expression $cmd

# Analyze compatibility with .NET Core App Version 1.1
$cmd = ${ApiPortdir} + "\ApiPort.exe analyze -f " + ${reefdir}
+"\lang\cs\bin\. -r excel -t `".NET Core App, Version=1.1`" "
Invoke-Expression $cmd

-Mario

Re: .NET Portability Analyzer

Posted by Mario Inchiosa <mi...@gmail.com>.
The command line version can produce reports in three formats: JSON, HTML,
and Excel. Parsing the JSON should be do-able.

Setting the output format is documented here:
https://github.com/Microsoft/dotnet-apiport/blob/master/docs/HowTo/Introduction.md

Mario

On Tue, Sep 27, 2016 at 10:57 AM, Markus Weimer <ma...@weimo.de> wrote:

> On 2016-09-27 10:07 AM, Mario Inchiosa wrote:
>
>> Yes, the command line version provides an overall picture across all
>> assemblies in the solution, while running from Visual Studio helps
>> pinpoint
>> the lines that need fixing in a particular project.
>>
>
> Can the command line version produce an easy-to-parse counter of the
> number of issues? If so, we could add it as a build step to make sure it
> goes down over time.
>
> Markus
>

Re: .NET Portability Analyzer

Posted by Markus Weimer <ma...@weimo.de>.
On 2016-09-27 10:07 AM, Mario Inchiosa wrote:
> Yes, the command line version provides an overall picture across all
> assemblies in the solution, while running from Visual Studio helps pinpoint
> the lines that need fixing in a particular project.

Can the command line version produce an easy-to-parse counter of the 
number of issues? If so, we could add it as a build step to make sure it 
goes down over time.

Markus

Re: .NET Portability Analyzer

Posted by Mario Inchiosa <mi...@gmail.com>.
Yes, the command line version provides an overall picture across all
assemblies in the solution, while running from Visual Studio helps pinpoint
the lines that need fixing in a particular project.

On Mon, Sep 26, 2016 at 7:21 PM, Douglas Service <ds...@gmail.com> wrote:

> I tried using the command line version, but the output from the visual
> studio version was clearer about what needed to be done for a given REEF
> project so that is the output I attached to all of the JIRA for CoreCLR API
> changes.
>
> On Mon, Sep 26, 2016 at 4:43 PM, Mario Inchiosa <mi...@gmail.com>
> wrote:
>
> > Here is a quick example of running the .NET Portability Analyzer against
> > REEF assemblies from a Windows PowerShell command line:
> >
> > # Download ApiPort.zip from
> > https://github.com/Microsoft/dotnet-apiport/releases and extract the
> files
> >
> > # Usage info:
> > https://github.com/Microsoft/dotnet-apiport/blob/master/
> > docs/HowTo/Introduction.md
> >
> > # Edit the following paths as needed on your machine
> > cd C:\reef11
> > $reefdir=".\reef\"  #your top level reef directory
> > $ApiPortdir = "C:\Users\marinch\Downloads\ApiPort\ApiPort" #your command
> > line portability analyzer directory containing ApiPort.exe
> >
> > # List the currently available API targets
> > $cmd = ${ApiPortdir} + "\ApiPort.exe listTargets"
> > Invoke-Expression $cmd
> >
> > # Analyze compatibility with .NET Core App Version 1.0
> > $cmd = ${ApiPortdir} + "\ApiPort.exe analyze -f " + ${reefdir}
> > +"\lang\cs\bin\. -r excel -t `".NET Core App, Version=1.0`" "
> > Invoke-Expression $cmd
> >
> > # Analyze compatibility with .NET Core App Version 1.1
> > $cmd = ${ApiPortdir} + "\ApiPort.exe analyze -f " + ${reefdir}
> > +"\lang\cs\bin\. -r excel -t `".NET Core App, Version=1.1`" "
> > Invoke-Expression $cmd
> >
> > -Mario
> >
>

Re: .NET Portability Analyzer

Posted by Douglas Service <ds...@gmail.com>.
I tried using the command line version, but the output from the visual
studio version was clearer about what needed to be done for a given REEF
project so that is the output I attached to all of the JIRA for CoreCLR API
changes.

On Mon, Sep 26, 2016 at 4:43 PM, Mario Inchiosa <mi...@gmail.com> wrote:

> Here is a quick example of running the .NET Portability Analyzer against
> REEF assemblies from a Windows PowerShell command line:
>
> # Download ApiPort.zip from
> https://github.com/Microsoft/dotnet-apiport/releases and extract the files
>
> # Usage info:
> https://github.com/Microsoft/dotnet-apiport/blob/master/
> docs/HowTo/Introduction.md
>
> # Edit the following paths as needed on your machine
> cd C:\reef11
> $reefdir=".\reef\"  #your top level reef directory
> $ApiPortdir = "C:\Users\marinch\Downloads\ApiPort\ApiPort" #your command
> line portability analyzer directory containing ApiPort.exe
>
> # List the currently available API targets
> $cmd = ${ApiPortdir} + "\ApiPort.exe listTargets"
> Invoke-Expression $cmd
>
> # Analyze compatibility with .NET Core App Version 1.0
> $cmd = ${ApiPortdir} + "\ApiPort.exe analyze -f " + ${reefdir}
> +"\lang\cs\bin\. -r excel -t `".NET Core App, Version=1.0`" "
> Invoke-Expression $cmd
>
> # Analyze compatibility with .NET Core App Version 1.1
> $cmd = ${ApiPortdir} + "\ApiPort.exe analyze -f " + ${reefdir}
> +"\lang\cs\bin\. -r excel -t `".NET Core App, Version=1.1`" "
> Invoke-Expression $cmd
>
> -Mario
>