This package contains the Windows runtime assemblies of packages that
are not actually supported on Linux. The assemblies exist in the Linux
runtime folder. While the code cannot be executed, this allows
PowerShell to use the Windows specific types in its function calls
without crashing (and allows compiling with these types in the first
place). This is *not* an ideal work-around, but we are waiting on a
better package from .NET that contains Linux runtime assemblies that
throw `PlatformNotSupported` exceptions on use.
All libraries now use the framework `netstandard1.5`, and import the
`dnxcore50` and `portable` frameworks. The app that is published,
Microsoft.PowerShell.Linux.Host, that is, the top-level dependency that
emits an executable, instead targets `netstandardapp1.5` and has a new
`runtimes` key so that .NET CLI's `restore` and `publish` commands know
which runtime implementations to resolve.
When switching to the new CLI, we needed to fix how we specified our
dependencies. In particular, the .NET CLI team helped me figure out how
to download packages that are reference assembly only on Linux, with
implementations on Windows. The result of this is the new `frameworks`
setup.
Additionally, we were incorrectly specifying our build dependencies;
that is, projects we also build (not packages). The solution was much
cleaner. We removed the `type: build` section and replaced it with the
version `1.0.0-*` that all our projects currently use.
The `project.json` files also had their names, descriptions,
indentation, and versions fixed.
The build scripts were simplified.