Skip to content

PackageReference Specification

Rob Relyea edited this page Sep 20, 2016 · 15 revisions

Problem

We need to migrate xproj/project.json data to msbuild based data structures in VS "15" for .NET Core.

Who is the customer?

.NET Core developers

Solution

Simple case for Preview 5 OOB

<PackageReference Include="NuGet.Versioning">
    <Version>3.6.0</Version>
</PackageReference>

This means the same as 3.6.0 in project.json today, which is >=3.6.0, preferring the lowest.

Simple case for RC

<PackageReference Include="NuGet.Versioning" Version="3.6.0" />

In RC milestone, MsBuild will enable all metadata to be specified as a attribute or child element

Conditioned on a TFM

<PackageReference Include="NuGet.Versioning" Condition = "'$(TargetFramework)' == 'netstandard10'>
  <Version>3.6.0</Version>
</PackageReference>

Versioning Flexibility

####Floating Version 3.6. 3.6.0-beta

####We’d like to start enabling double asterisks

####Explicit Floating Version Ranges

####Hard Version

####Strict Mode strict|normal|permissive

  • Strict will convert “3.6.0” to “[3.6.0]” (on top level and dependencies – across the entire restore graph)
  • Normal will warn on upgrades
  • Permissive will not warn Current default is permissive. New default will be normal.

###Asset Inclusion Include/Exclude/Private Assets

Contributing

What's Being Worked On?

Check out the proposals in the accepted & proposed folders on the repository, and active PRs for proposals being discussed today.

Common Problems

Clone this wiki locally