fsprojects / Paket

A dependency manager for .NET with support for NuGet packages and Git repositories.
https://fsprojects.github.io/Paket/
MIT License
2.02k stars 525 forks source link

Unknown .NET moniker >= monoandroid #2246

Closed MovGP0 closed 7 years ago

MovGP0 commented 7 years ago

Description

trying do migrate an Xamarin/Android project to paket fails with the following message:

Paket failed with:
        Unknown .NET moniker >= monoandroid

Repro steps

PS> .\.paket\paket.exe install --force
Paket version 4.4.0
Resolving packages for group Main:
 - Xamarin.Android.Support.Animated.Vector.Drawable is pinned to 23.3.0
 - Xamarin.Android.Support.Design is pinned to 23.3.0
 - Xamarin.Android.Support.v4 is pinned to 23.3.0
 - Xamarin.Android.Support.v7.AppCompat is pinned to 23.3.0
 - Xamarin.Android.Support.v7.CardView is pinned to 23.3.0
 - Xamarin.Android.Support.v7.MediaRouter is pinned to 23.3.0
 - Xamarin.Android.Support.v7.RecyclerView is pinned to 23.3.0
 - Xamarin.Android.Support.Vector.Drawable is pinned to 23.3.0
 - FluentAssertions is pinned to 4.19.2
 - WindowsBase is pinned to 4.6.1055.0
 - System.Net.Http is pinned to 4.3.1
 - Microsoft.CSharp is pinned to 4.3.0
 - System.Collections is pinned to 4.3.0
 - System.Collections.Concurrent is pinned to 4.3.0
 - System.Collections.NonGeneric is pinned to 4.3.0
 - System.ComponentModel is pinned to 4.3.0
 - System.Diagnostics.Contracts is pinned to 4.3.0
 - System.Diagnostics.Debug is pinned to 4.3.0
 - System.Diagnostics.Tools is pinned to 4.3.0
 - System.Diagnostics.Tracing is pinned to 4.3.0
 - System.Dynamic.Runtime is pinned to 4.3.0
 - System.Globalization is pinned to 4.3.0
 - System.IO is pinned to 4.3.0
 - System.IO.Compression is pinned to 4.3.0
 - System.Linq is pinned to 4.3.0
 - System.Linq.Expressions is pinned to 4.3.0
 - System.Net.Primitives is pinned to 4.3.0
 - System.ObjectModel is pinned to 4.3.0
 - System.Reflection is pinned to 4.3.0
 - System.Reflection.Extensions is pinned to 4.3.0
 - System.Reflection.Primitives is pinned to 4.3.0
 - System.Resources.ResourceManager is pinned to 4.3.0
 - System.Runtime is pinned to 4.3.0
 - System.Runtime.Extensions is pinned to 4.3.0
 - System.Runtime.InteropServices is pinned to 4.3.0
 - System.Runtime.InteropServices.RuntimeInformation is pinned to 4.3.0
 - System.Runtime.InteropServices.WindowsRuntime is pinned to 4.3.0
 - System.Runtime.Numerics is pinned to 4.3.0
 - System.Text.Encoding is pinned to 4.3.0
 - System.Text.Encoding.Extensions is pinned to 4.3.0
 - System.Text.RegularExpressions is pinned to 4.3.0
 - System.Threading is pinned to 4.3.0
 - System.Threading.Tasks is pinned to 4.3.0
 - System.Xml.ReaderWriter is pinned to 4.3.0
 - System.Xml.XDocument is pinned to 4.3.0
 - Microsoft.Win32.Primitives is pinned to 4.3.0
 - System.AppContext is pinned to 4.3.0
 - System.Console is pinned to 4.3.0
 - System.Globalization.Calendars is pinned to 4.3.0
 - System.IO.Compression.ZipFile is pinned to 4.3.0
 - System.IO.FileSystem is pinned to 4.3.0
 - System.IO.FileSystem.Primitives is pinned to 4.3.0
 - System.Net.Sockets is pinned to 4.3.0
 - System.Runtime.Handles is pinned to 4.3.0
 - System.Security.Cryptography.Algorithms is pinned to 4.3.0
 - System.Security.Cryptography.Encoding is pinned to 4.3.0
 - System.Security.Cryptography.Primitives is pinned to 4.3.0
 - System.Security.Cryptography.X509Certificates is pinned to 4.3.0
 - System.Threading.Timer is pinned to 4.3.0
 - Microsoft.Xaml is pinned to 4.0.0.1
 - System.Reactive.Core is pinned to 3.1.1
 - System.Reactive.Interfaces is pinned to 3.1.1
 - System.Reactive is pinned to 3.1.1
 - System.Reactive.Linq is pinned to 3.1.1
 - System.Reactive.PlatformServices is pinned to 3.1.1
 - DryIoc.dll is pinned to 2.10.4
 - Serilog is pinned to 2.4.0
 - Xamarin.Forms is pinned to 2.3.4.231
 - xunit is pinned to 2.2.0
 - xunit.assert is pinned to 2.2.0
 - xunit.core is pinned to 2.2.0
 - xunit.extensibility.core is pinned to 2.2.0
 - xunit.extensibility.execution is pinned to 2.2.0
 - NSubstitute is pinned to 2.0.2
 - xunit.abstractions is pinned to 2.0.1
 - SkiaSharp is pinned to 1.57.0
 - SkiaSharp.Views is pinned to 1.57.0
 - SkiaSharp.Views.Forms is pinned to 1.57.0
 - SkiaSharp.Svg is pinned to 1.55.1-beta1
 - Fody is pinned to 1.29.4
 - NETStandard.Library is pinned to 1.6.1
 - NullGuard.Fody is pinned to 1.4.6
 - MoreLinq.Portable is pinned to 1.4.0
 - Microsoft.NETCore.Platforms is pinned to 1.1.0
 - PCLStorage is pinned to 1.0.2
 - Microsoft.Azure.Mobile is pinned to 0.7.0
 - Microsoft.Azure.Mobile.Analytics is pinned to 0.7.0
 - Microsoft.Azure.Mobile.Crashes is pinned to 0.7.0
 - Serilog.Sinks.Xamarin is pinned to 0.1.25
Paket failed with:
        Unknown .NET moniker >= monoandroid

Expected behavior

Actual behavior

Known workarounds

MovGP0 commented 7 years ago

File paket.dependencies:

source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json
source https://dotnet.myget.org/F/cli-deps/api/v3/index.json
source https://api.nuget.org/v3/index.json

nuget DryIoc.dll 2.10.4
nuget FluentAssertions 4.19.2 framework: >= net45
nuget Fody 1.29.4 framework: portable45-net45+win8+wp8+wpa81
nuget Microsoft.Azure.Mobile 0.7.0
nuget Microsoft.Azure.Mobile.Analytics 0.7.0
nuget Microsoft.Azure.Mobile.Crashes 0.7.0
nuget Microsoft.CSharp 4.3.0
nuget Microsoft.NETCore.Platforms 1.1.0
nuget Microsoft.Win32.Primitives 4.3.0 framework: >= xamarinios
nuget Microsoft.Xaml 4.0.0.1 framework: portable45-net45+win8+wpa81
nuget MoreLinq.Portable 1.4.0 framework: portable45-net45+win8+wp8+wpa81
nuget NETStandard.Library 1.6.1
nuget NSubstitute 2.0.2 framework: >= net45
nuget NullGuard.Fody 1.4.6 framework: portable45-net45+win8+wp8+wpa81
nuget PCLStorage 1.0.2
nuget Serilog 2.4.0
nuget Serilog.Sinks.Xamarin 0.1.25
nuget SkiaSharp 1.57.0
nuget SkiaSharp.Svg 1.55.1-beta1
nuget SkiaSharp.Views 1.57.0
nuget SkiaSharp.Views.Forms 1.57.0
nuget System.AppContext 4.3.0 framework: >= xamarinios
nuget System.Collections 4.3.0
nuget System.Collections.Concurrent 4.3.0
nuget System.Collections.NonGeneric 4.3.0
nuget System.ComponentModel 4.3.0
nuget System.Console 4.3.0 framework: >= xamarinios
nuget System.Diagnostics.Contracts 4.3.0
nuget System.Diagnostics.Debug 4.3.0
nuget System.Diagnostics.Tools 4.3.0
nuget System.Diagnostics.Tracing 4.3.0
nuget System.Dynamic.Runtime 4.3.0
nuget System.Globalization 4.3.0
nuget System.Globalization.Calendars 4.3.0 framework: >= xamarinios
nuget System.IO 4.3.0
nuget System.IO.Compression 4.3.0
nuget System.IO.Compression.ZipFile 4.3.0 framework: >= xamarinios
nuget System.IO.FileSystem 4.3.0 framework: >= xamarinios
nuget System.IO.FileSystem.Primitives 4.3.0 framework: >= xamarinios
nuget System.Linq 4.3.0
nuget System.Linq.Expressions 4.3.0
nuget System.Net.Http 4.3.1
nuget System.Net.Primitives 4.3.0
nuget System.Net.Sockets 4.3.0 framework: >= xamarinios
nuget System.ObjectModel 4.3.0
nuget System.Reactive 3.1.1 framework: portable45-net45+win8+wp8+wpa81
nuget System.Reactive.Core 3.1.1
nuget System.Reactive.Interfaces 3.1.1
nuget System.Reactive.Linq 3.1.1 framework: portable45-net45+win8+wp8+wpa81
nuget System.Reactive.PlatformServices 3.1.1 framework: portable45-net45+win8+wp8+wpa81
nuget System.Reflection 4.3.0
nuget System.Reflection.Extensions 4.3.0
nuget System.Reflection.Primitives 4.3.0
nuget System.Resources.ResourceManager 4.3.0
nuget System.Runtime 4.3.0
nuget System.Runtime.Extensions 4.3.0
nuget System.Runtime.Handles 4.3.0 framework: >= xamarinios
nuget System.Runtime.InteropServices 4.3.0
nuget System.Runtime.InteropServices.RuntimeInformation 4.3.0
nuget System.Runtime.InteropServices.WindowsRuntime 4.3.0
nuget System.Runtime.Numerics 4.3.0
nuget System.Security.Cryptography.Algorithms 4.3.0 framework: >= xamarinios
nuget System.Security.Cryptography.Encoding 4.3.0 framework: >= xamarinios
nuget System.Security.Cryptography.Primitives 4.3.0 framework: >= xamarinios
nuget System.Security.Cryptography.X509Certificates 4.3.0 framework: >= xamarinios
nuget System.Text.Encoding 4.3.0
nuget System.Text.Encoding.Extensions 4.3.0
nuget System.Text.RegularExpressions 4.3.0
nuget System.Threading 4.3.0
nuget System.Threading.Tasks 4.3.0
nuget System.Threading.Timer 4.3.0 framework: >= xamarinios
nuget System.Xml.ReaderWriter 4.3.0
nuget System.Xml.XDocument 4.3.0
nuget WindowsBase 4.6.1055.0 framework: portable45-net45+win8+wpa81
nuget Xamarin.Android.Support.Animated.Vector.Drawable 23.3.0 framework: >= monoandroid
nuget Xamarin.Android.Support.Design 23.3.0 framework: >= monoandroid
nuget Xamarin.Android.Support.v4 23.3.0 framework: >= monoandroid
nuget Xamarin.Android.Support.v7.AppCompat 23.3.0 framework: >= monoandroid
nuget Xamarin.Android.Support.v7.CardView 23.3.0 framework: >= monoandroid
nuget Xamarin.Android.Support.v7.MediaRouter 23.3.0 framework: >= monoandroid
nuget Xamarin.Android.Support.v7.RecyclerView 23.3.0 framework: >= monoandroid
nuget Xamarin.Android.Support.Vector.Drawable 23.3.0 framework: >= monoandroid
nuget Xamarin.Forms 2.3.4.231
nuget xunit 2.2.0
nuget xunit.abstractions 2.0.1
nuget xunit.assert 2.2.0
nuget xunit.core 2.2.0
nuget xunit.extensibility.core 2.2.0
nuget xunit.extensibility.execution 2.2.0
MovGP0 commented 7 years ago

by removing the monoandroid lines, the packages get restored and result in the error message

Paket failed with:
        Unknown .NET moniker >= xamarinios
matthid commented 7 years ago

Seems like a mono bug as https://github.com/fsprojects/Paket/blob/master/src/Paket.Core/FrameworkHandling.fs#L335 contains monoandroid

Will take a look later, can you run with -v (verbose)?

MovGP0 commented 7 years ago

after removing both, the lines containing monoandroid and the lines with xamarinios, everything worked fine. haven't tried using the --verbose option.

matthid commented 7 years ago

@forki I cannot figure out what optimizeRestrictions is supposed to do (https://github.com/fsprojects/Paket/blob/master/src/Paket.Core/Requirements.fs#L156) but apparently currently it has problems with the atleast operator.

@MovGP0 apparently paket has problems with the atleast (>=) operator. What exactly did you thought paket would do? Using all Platforms supported by monoandroid (which would be quite similar to >= net45)?

matthid commented 7 years ago

(I thought this would be related to my latest patch, but it isn't)

forki commented 7 years ago

fixed in latest paket 5 alpha