-
Notifications
You must be signed in to change notification settings - Fork 266
PackageReference Specification
We need to migrate xproj/project.json data to msbuild based data structures in VS "15" for .NET Core.
.NET Core developers
<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 -->
- [ESJ] One set of scenarios that might be interesting is giving targets the ability to examine/control the versioning of PackageReference items. That’s straightforward if Version is metadata, less so if it is part of a string. I agree though that brevity is a higher priority here. Perhaps you have a target that runs and produces an intermediate that converts these to Items + meta-data. [YG] Targets controlling the versions of packagerefs would become a chicken and egg thing eventually, and will get in the way of how the UI works. But we could still probably support it with a library that can decompose/recompose. Alternatively we can have a “brevity” format and an expanded format. I’m not in love with the latter suggestion because it adds more edge cases and confusion.
<PackageReference Include="NuGet.Versioning" Condition = "'$(TargetFramework)' == 'netstandard10'> <Version>3.6.0</Version> </PackageReference>
Floating Version
Issues with “*” inside of an Include:
a) Msbuild currently will treat this “” as a wildcard. We are seeing if there is a way for msbuild to support this syntax (perhaps https://github.com/Microsoft/msbuild/issues/982), or perhaps a “Version” attribute. If neither of those are possible, we’ll likely have to go with: 3.6.
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
Check out the proposals in the accepted & proposed folders on the repository, and active PRs for proposals being discussed today.