What does it mean to depend on Microsoft.NETCore.App?
Problem
What does this dependency mean in the
project.json
file?
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-23931" }
Bits
What’s different between putting that dependency inside a top level `dependencies` section and putting it in a `frameworks > some-framework > dependencies` section?
How does this related to the following packages.
-
NETCore.App
-
NETStandard.App
-
NETStandard.Library
-
NETStandard.Platform
-
Microsoft.NETCore.App
-
Microsoft.NETCore
How does this related to the following Target Platform Names and Aliases?
Platform Name | Alias |
.NET Platform Standard ( not a real platform ) | netstandard |
.NET Core | netcoreapp |
.NET Framework | net |
Mono | - |
Platforms
.NET Platform Standard
- is NOT a real platform
- contains only reference assemblies
.NET Core, .NET Framework, and Mono
- are anchor platforms
- contain anchored assemblies
Definitions
Reference Assembly. Contracts only. Cannot run. No IL in method bodies.
Implementation Assembly.
- Implements a reference assembly.
- Can be a standalone package or be part of a platform.
Anchored Assembly.
- Is an implementation assembly…
- that is part of a platform not a stand-alone assembly.
TxM .
- Target something moniker.
- For instance, with frameworks this is TFM, and means Target Framework Moniker.
My Sense (Best Guess)
To depended on `Microsoft.NETCore.App` means to depend on a platform that includes implementation assemblies . If we put `Microsoft.NETCore.App` in our project.json dependencies section, then that means we’re going to pull the entire `Microsoft.NETCore.App` platform down from NuGet, which will include all of its implementation assemblies.