PowerShell/src/Microsoft.PowerShell.SDK
Naadir Jeewa 32a8601f92 Rebase onto .NET Core 1.1 (#2737)
* Rebase onto .NET Core 1.1

Modify `Build.psm1` and `project.json` files to use .NET Core 1.1.

.NET Core 1.1 ships with an older dotnet/cli than has currently been used,
so we revert to use case-sensitive directory names for dependencies.

.NET Core 1.1 is a pre-requisite for supporting Fedora 24.

* PSReadLine: Bump major version of PSReadline to 6.0.0-*

* Microsoft.PowerShell.Commands.Utility: Bump major version of Microsoft.CodeAnalysis.Csharp

* Microsoft.PowerShell.SDK: Revert attempt to import netcoreapp1.1 instead of dnxcore

* build.psm1: Restore ability to specify version of dotnet-install.sh
2016-12-07 18:29:21 -08:00
..
project.json Rebase onto .NET Core 1.1 (#2737) 2016-12-07 18:29:21 -08:00
README.md Introduce Microsoft.PowerShell.SDK 2016-07-26 16:48:57 -07:00

Microsoft PowerShell SDK

This project is a metapackage referencing the PowerShell projects and .NET Core packages that PowerShell ships.

The package dependencies consist of two parts:

  1. PowerShell projects: local source code with own sets of dependencies
  2. .NET Core packages: the framework libraries that we ensure are present for PowerShell developers at runtime

This second set includes packages that we do not necessarily require at compile-time, but must provide for our users at runtime. For example, we include the library System.Runtime.Serialization.Json.dll so that users of PowerShell can utilize its types and methods, even though PowerShell does not directly depend on the library.

There are intentionally duplicated dependencies. Instead of relying on dependency transitivity where A -> B, B -> C, so A -> C, we explicitly include A -> C if A requires C despite the removal of B. Additionally, we want to easily identify our complete dependency set without generating a lockfile (an artifact of dotnet restore after it resolves the dependency graph). For example, System.Management.Automation depends on System.Diagnostics.TraceSource, but Microsoft.PowerShell.SDK depends on both System.Diagnostics.TraceSource and System.Management.Automation.

Transitive dependencies not listed in project.json are not a part of public contract.