fsprojects / Paket

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

Paket 6.0.0 cannot download any packages from Azure feed #4062

Closed Flohack74 closed 2 years ago

Flohack74 commented 2 years ago

Description

Paket 6.0.0 cannot download any package from Azure DevOps feed

Repro steps

I can only guess:

Expected behavior

As with version 5.x.x download should go smoothly.

Actual behavior

Seems its missing System.Memory, Version=4.0.1.1 ?

Download has this stack trace:

Downloading XYZ.Dialog 29.14.44
Possible Performance degradation, V3 was not working: One or more errors occurred.
Source 'https://xyz.pkgs.visualstudio.com/_packaging/Xyz.Commons/nuget/v3/index.json' exception: System.Exception: Could not retrieve data from 'https://xyz.pkgs.visualstudio.com/_packaging/Xyz.Commons/nuget/v2/FindPackagesById()?semVerLevel=2.0.0&id='SettingsXmlFiles'' ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.
   at System.Net.Http.WinHttpResponseParser.GetReasonPhrase(HttpStatusCode statusCode, Char[] buffer, Int32 bufferLength)
   at System.Net.Http.WinHttpResponseParser.CreateResponseMessage(WinHttpRequestState state, DecompressionMethods manuallyProcessedDecompressionMethods)
   at System.Net.Http.WinHttpHandler.<StartRequestAsync>d__109.MoveNext()
   --- End of inner exception stack trace ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Paket.NetUtils.catchHandler@1-1[a](AuthProvider auth, FSharpFunc`2 doRequest, Exception _arg1)
   at Paket.NetUtils.resolveAuth@482-3.Invoke(Exception edi)
   at Microsoft.FSharp.Control.AsyncPrimitives.CallFilterThenInvoke[T](AsyncActivation`1 ctxt, FSharpFunc`2 catchFilter, ExceptionDispatchInfo edi)
   at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction)
   --- End of inner exception stack trace ---
   at Paket.NetUtils.catchHandler@1-3(String url, Exception _arg3)
   at Paket.NetUtils.getFromUrl@534-3.Invoke(Exception edi)
   at Microsoft.FSharp.Control.AsyncPrimitives.CallFilterThenInvoke[T](AsyncActivation`1 ctxt, FSharpFunc`2 catchFilter, ExceptionDispatchInfo edi)
   at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction)

Known workarounds

None

forki commented 2 years ago

@baronfel @smoothdeveloper any ideas what this is?

Flohack74 commented 2 years ago

Seems I even have .NET 5.0 installed. My list shows .NET SDK 5.0.302

sajagi commented 2 years ago

Same issue in rc006 (rc005 works fine).

forki commented 2 years ago

@baronfel is this related to your recent ILRepack changes?

baronfel commented 2 years ago

Here's the comparison between those two versions for those following along at home.

Here's the diff in the ILRepack changes specifically, System.Memory wasn't in that list before. It's possible that System.Memory is a required dependency of the new Nuget.Packaging dependency, but I don't see that in the paket.lock for that package, that package's dependencies, or in the nuget gallery dependency listings.

It's also not been removed from any of the .net framework app.configs....

wahmedswl commented 2 years ago

Hi, is there someway to pin paket to specific version? We are using .paket\paket.bootstrapper.exe to self-update paket.

Thanks

romanlum commented 2 years ago

you can use a parameter for paket.bootstrapper

paket.bootstrapper.exe 5.258.1
baronfel commented 2 years ago

@wahmedswl yep! check out the docs on the bootstrapper for information on how to choose a specific version.

the simplest way is to have a version section in your paket.dependencies in my opinion.

wahmedswl commented 2 years ago

yup, got it

set PAKET_VERSION=6.0.0-rc005
.paket\paket.bootstrapper.exe

Thanks

baronfel commented 2 years ago

did an ilspy investigation into the merged paket.exe from the latest commit, and it does just look like a missing DLL issue. the built-but-not-merged paket folder contains System.Memory, but the merged dll doesn't have any of the types in it. That means the quick resolution would be ot add System.Memory to the ILRepack list.

➜  bin git:(master) ✗ pwd
/Users/chethusk/oss/Paket/bin
➜  bin git:(master) ✗ monop -r net461/System.Memory.dll 

Assembly Information:
System.Memory
Version=4.0.1.1
Culture=neutral
PublicKeyToken=cc7b13ffcd2ddd51

System.Buffers.Binary.BinaryPrimitives
System.Buffers.BuffersExtensions
System.Buffers.IBufferWriter`1
System.Buffers.IMemoryOwner`1
System.Buffers.IPinnable
System.Buffers.MemoryHandle
System.Buffers.MemoryManager`1
System.Buffers.MemoryPool`1
System.Buffers.OperationStatus
System.Buffers.ReadOnlySequence`1
System.Buffers.ReadOnlySequence`1+Enumerator
System.Buffers.ReadOnlySequenceSegment`1
System.Buffers.StandardFormat
System.Buffers.Text.Base64
System.Buffers.Text.Utf8Formatter
System.Buffers.Text.Utf8Parser
System.Memory`1
System.MemoryExtensions
System.ReadOnlyMemory`1
System.ReadOnlySpan`1
System.ReadOnlySpan`1+Enumerator
System.Runtime.InteropServices.MemoryMarshal
System.Runtime.InteropServices.SequenceMarshal
System.SequencePosition
System.Span`1
System.Span`1+Enumerator

Total: 26 types.
➜  bin git:(master) ✗ monop -r merged/paket.exe | grep System.Memory
➜  bin git:(master) ✗ 

What I'm not certain about is if there are other dependencies that should also be added at this time. Here's the full listing of the 'normal' paket directory:

➜  bin git:(master) ✗ ls net461 
Argu.dll                        Paket.Core.xml                                  System.Dynamic.Runtime.dll           System.Net.WebSockets.dll                              System.Security.SecureString.dll
Argu.pdb                        paket.exe                                       System.Globalization.Calendars.dll   System.Numerics.Vectors.dll                            System.Text.Encoding.dll
Chessie.dll                     paket.exe.config                                System.Globalization.dll             System.ObjectModel.dll                                 System.Text.Encoding.Extensions.dll
Chessie.pdb                     paket.pdb                                       System.Globalization.Extensions.dll  System.Reflection.dll                                  System.Text.RegularExpressions.dll
cs                              pl                                              System.IO.Compression.dll            System.Reflection.Extensions.dll                       System.Threading.dll
de                              pt-BR                                           System.IO.Compression.ZipFile.dll    System.Reflection.Primitives.dll                       System.Threading.Overlapped.dll
es                              ru                                              System.IO.dll                        System.Resources.Reader.dll                            System.Threading.Tasks.dll
fr                              System.AppContext.dll                           System.IO.FileSystem.dll             System.Resources.ResourceManager.dll                   System.Threading.Tasks.Extensions.dll
FSharp.Core.dll                 System.Buffers.dll                              System.IO.FileSystem.DriveInfo.dll   System.Resources.Writer.dll                            System.Threading.Tasks.Parallel.dll
it                              System.Collections.Concurrent.dll               System.IO.FileSystem.Primitives.dll  System.Runtime.CompilerServices.Unsafe.dll             System.Threading.Thread.dll
ja                              System.Collections.dll                          System.IO.FileSystem.Watcher.dll     System.Runtime.CompilerServices.VisualC.dll            System.Threading.ThreadPool.dll
ko                              System.Collections.NonGeneric.dll               System.IO.IsolatedStorage.dll        System.Runtime.dll                                     System.Threading.Timer.dll
Microsoft.Win32.Primitives.dll  System.Collections.Specialized.dll              System.IO.MemoryMappedFiles.dll      System.Runtime.Extensions.dll                          System.ValueTuple.dll
Mono.Cecil.dll                  System.ComponentModel.dll                       System.IO.Pipes.dll                  System.Runtime.Handles.dll                             System.Xml.ReaderWriter.dll
Mono.Cecil.Mdb.dll              System.ComponentModel.EventBasedAsync.dll       System.IO.UnmanagedMemoryStream.dll  System.Runtime.InteropServices.dll                     System.Xml.XDocument.dll
Mono.Cecil.Mdb.pdb              System.ComponentModel.Primitives.dll            System.Linq.dll                      System.Runtime.InteropServices.RuntimeInformation.dll  System.Xml.XmlDocument.dll
Mono.Cecil.pdb                  System.ComponentModel.TypeConverter.dll         System.Linq.Expressions.dll          System.Runtime.Numerics.dll                            System.Xml.XmlSerializer.dll
Mono.Cecil.Pdb.dll              System.Configuration.ConfigurationManager.dll   System.Linq.Parallel.dll             System.Runtime.Serialization.Formatters.dll            System.Xml.XPath.dll
Mono.Cecil.Pdb.pdb              System.Console.dll                              System.Linq.Queryable.dll            System.Runtime.Serialization.Json.dll                  System.Xml.XPath.XDocument.dll
Mono.Cecil.Rocks.dll            System.Data.Common.dll                          System.Memory.dll                    System.Runtime.Serialization.Primitives.dll            tr
Mono.Cecil.Rocks.pdb            System.Diagnostics.Contracts.dll                System.Net.Http.dll                  System.Runtime.Serialization.Xml.dll                   zh-Hans
netstandard.dll                 System.Diagnostics.Debug.dll                    System.Net.Http.WinHttpHandler.dll   System.Security.Claims.dll                             zh-Hant
Newtonsoft.Json.dll             System.Diagnostics.DiagnosticSource.dll         System.Net.NameResolution.dll        System.Security.Cryptography.Algorithms.dll            
NuGet.Common.dll                System.Diagnostics.FileVersionInfo.dll          System.Net.NetworkInformation.dll    System.Security.Cryptography.Cng.dll                   
NuGet.Configuration.dll         System.Diagnostics.Process.dll                  System.Net.Ping.dll                  System.Security.Cryptography.Csp.dll                   
NuGet.Frameworks.dll            System.Diagnostics.StackTrace.dll               System.Net.Primitives.dll            System.Security.Cryptography.Encoding.dll              
NuGet.Packaging.dll             System.Diagnostics.TextWriterTraceListener.dll  System.Net.Requests.dll              System.Security.Cryptography.Pkcs.dll                  
NuGet.Versioning.dll            System.Diagnostics.Tools.dll                    System.Net.Security.dll              System.Security.Cryptography.Primitives.dll            
Paket.Core.dll                  System.Diagnostics.TraceSource.dll              System.Net.Sockets.dll               System.Security.Cryptography.ProtectedData.dll         
Paket.Core.dll.config           System.Diagnostics.Tracing.dll                  System.Net.WebHeaderCollection.dll   System.Security.Cryptography.X509Certificates.dll      
Paket.Core.pdb                  System.Drawing.Primitives.dll                   System.Net.WebSockets.Client.dll     System.Security.Principal.dll

Of these dlls, I'm unsure what subset need to be merged in order to be successful on .net framework.

baronfel commented 2 years ago

@Flohack74 or anyone else on this thread: do you have a sample paket.dependencies file that could be used for testing?

Flohack74 commented 2 years ago

@baronfel yes but it needs to be cleaned from our internal dependencies :) - should I send it to you somehow?

baronfel commented 2 years ago

@Flohack74 if it's been purged of internal dependencies then pasting it here should be fine. If that's not doable/acceptable please let me know and we can work out something over email.

Flohack74 commented 2 years ago

Ok here we are. Though you might fail to find some of the packages still that I could not determine if they are coming from our internal feed or from public:

framework: net48

source https://api.nuget.org/v3/index.json

nuget Antlr 3.4.1.9004 
nuget Antlr3.Runtime 3.5.1 
nuget Apache.NMS.ActiveMQ 1.8.0 
nuget Autofac 4.8.1
nuget Autofac.Extras.NLog 1.3.0 
nuget Autofac.Wcf 4.1.0 
nuget AvalonEdit 5.0.3 
nuget bootstrap 3.0.0 
nuget BrotliSharpLib 0.3.1 
nuget Castle.Core 4.3.1
nuget cef.redist.x64 3.3325.1758 
nuget cef.redist.x86 3.3325.1758 
nuget CefSharp.Common 65.0.0 
nuget CefSharp.WinForms 65.0.0 
nuget CommandLineParser 2.5.0 
nuget Common.Logging 3.0.0 
nuget Common.Logging.Core 3.0.0 
nuget CommonsAdditionalFiles 
nuget Confluent.Kafka 1.5.3
nuget Costura.Fody 3.3.3 
nuget CrashTestApp 
nuget d3 3.5.17 
nuget d3.TypeScript.DefinitelyTyped 2.6.7 
nuget Elasticsearch.Net 6.3.0
nuget Extended.Wpf.Toolkit 3.2.0
nuget Fleck 0.14.0.59 
nuget FlexeraHelpers 
nuget Fody 4.2.1 
nuget Iesi.Collections 4.0.4 
nuget InteractiveTesting.Api.Domain 14.1.0.60
nuget jQuery 1.10.2 
nuget jquery.TypeScript.DefinitelyTyped 3.0.6 
nuget jQuery.Validation 1.11.1 
nuget librdkafka.redist 1.5.3
nuget LicenseUsageStatistics 12.1.0.53 
nuget log4net
nuget MediaTypeMap 2.1.0.0 
nuget Microsoft.AnalysisServices.AdomdClient.retail.amd64 15.12.1 
nuget Microsoft.ApplicationInsights 2.1.0  
nuget Microsoft.ApplicationInsights.Agent.Intercept 2.0.1  
nuget Microsoft.ApplicationInsights.DependencyCollector 2.1.0 
nuget Microsoft.ApplicationInsights.JavaScript 
nuget Microsoft.ApplicationInsights.PerfCounterCollector 2.1.0  
nuget Microsoft.ApplicationInsights.Web 
nuget Microsoft.ApplicationInsights.WindowsServer 2.1.0  
nuget Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel 2.1.0  
nuget Microsoft.AspNet.Mvc 5.2.3 
nuget Microsoft.AspNet.Razor 3.2.3 
nuget Microsoft.AspNet.Web.Optimization 1.1.3 
nuget Microsoft.AspNet.WebApi 5.2.3 
nuget Microsoft.AspNet.WebApi.Client 5.2.7
nuget Microsoft.AspNet.WebApi.Core 5.2.7
nuget Microsoft.AspNet.WebApi.WebHost 5.2.3 
nuget Microsoft.AspNet.WebPages 3.2.3 
nuget Microsoft.Bcl 1.1.10 
nuget Microsoft.Bcl.Async 1.0.168 
nuget Microsoft.Bcl.Build 1.0.21 
nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform 2.0.0
nuget Microsoft.Diagnostics.Tracing.EventRegister 1.1.28 
nuget Microsoft.Diagnostics.Tracing.EventSource 1.1.28 
nuget Microsoft.Diagnostics.Tracing.EventSource.Redist 1.1.28 
nuget Microsoft.jQuery.Unobtrusive.Validation 3.2.3 
nuget Microsoft.Net.Compilers 1.0.0 
nuget Microsoft.NET.Test.Sdk 15.8.0
nuget Microsoft.NETCore.Platforms 
nuget Microsoft.Web.Infrastructure 1.0.0.0 
nuget Microsoft.Win32.Primitives 4.3.0 
nuget Microsoft.WindowsAPICodePack-Core 1.1.0.0 
nuget Microsoft.WindowsAPICodePack-Shell 1.1.0.0 
nuget MimeKit 2.1.2 
nuget Modernizr 2.6.2 
nuget MongoDB.Bson 2.4.4 
nuget MongoDB.Driver 2.4.4 
nuget MongoDB.Driver.Core 2.4.4 
nuget Mono.Options 5.3.0.1 
nuget Moq 4.10.1
nuget MouseKeyHook 5.4.0 
nuget MSBuild.NugetContentRestore 0.1.6 
nuget MSBuildTasks 1.4.0.128 
nuget MSTest.TestAdapter 1.3.2
nuget MSTest.TestFramework 1.3.2
nuget MySql.Data 6.9.9
nuget ncalc 1.3.8 
nuget NEST 6.3.0
nuget NETStandard.Library 
nuget Newtonsoft.Json 12.0.3 
nuget Newtonsoft.Json.Schema 3.0.13 
nuget NLog 4.5.6
nuget NLog.Config 4.5.6 
nuget NLog.Schema 4.5.6 
nuget NUnit 2.6.4
nuget NUnit.Core 2.6.4
nuget NUnit.Mocks 2.6.4 
nuget NUnit3TestAdapter 3.16.1 
nuget Octokit 0.26.0 
nuget odp.net.x64 112.3.0 
nuget OpenCvSharp3-AnyCPU 3.1.0.20160622 
nuget Perfecto-Reporting 2.0.0 
nuget PerfectoLab 6.5.0.0 
nuget PerfectoLab.Extended 6.5.0.0 
nuget Polly 
nuget Polly.Caching.Memory 3.0.2
nuget PostSharp 6.4.7 
nuget PostSharp.Redist 6.4.7 
nuget Prism.Core 6.3.0 
nuget QrCode.Net 0.4.0.0 
nuget Quartz 3.0.5 
nuget RabbitMQ.Client 6.2.1
nuget Recorder.BusinessLogic 14.1.0.40
nuget Recorder.UI 14.1.0.40
nuget refit 4.7.9 
nuget Remotion.Linq 2.2.0 
nuget Remotion.Linq.EagerFetching 2.2.0 
nuget Respond 1.2.0 
nuget SettingsXmlFiles 
nuget SharpZipLib 1.2.0
nuget SSH.NET 2020.0.0-beta1
nuget StreamExtended 1.0.179 
nuget Svg 2.3.0 
nuget System.AppContext 
nuget System.Buffers 
nuget System.Collections 
nuget System.Collections.Concurrent 
nuget System.ComponentModel 
nuget System.ComponentModel.Annotations 
nuget System.ComponentModel.EventBasedAsync 
nuget System.Console 
nuget System.Data.SQLite.Core
nuget System.Diagnostics.Debug 
nuget System.Diagnostics.DiagnosticSource
nuget System.Diagnostics.Tools 
nuget System.Diagnostics.Tracing 
nuget System.DirectoryServices
nuget System.DirectoryServices.AccountManagement 
nuget System.Drawing.Primitives 
nuget System.Dynamic.Runtime 
nuget System.Globalization 
nuget System.Globalization.Calendars 
nuget System.Interactive 
nuget System.IO 
nuget System.IO.Compression 
nuget System.IO.Compression.ZipFile 
nuget System.IO.FileSystem 
nuget System.IO.FileSystem.Primitives 
nuget System.Linq 
nuget System.Linq.Dynamic 
nuget System.Linq.Expressions 
nuget System.Linq.Queryable 
nuget System.Memory 
nuget System.Net.Http 4.3.3 
nuget System.Net.Primitives 
nuget System.Net.Sockets 
nuget System.Numerics.Vectors 
nuget System.ObjectModel 
nuget System.Reflection 
nuget System.Reflection.Extensions 
nuget System.Reflection.Primitives 
nuget System.Resources.ResourceManager 
nuget System.Runtime 
nuget System.Runtime.CompilerServices.Unsafe
nuget System.Runtime.Extensions 
nuget System.Runtime.Handles 
nuget System.Runtime.InteropServices 
nuget System.Runtime.InteropServices.RuntimeInformation
nuget System.Runtime.Numerics 
nuget System.Security.Cryptography.Algorithms
nuget System.Security.Cryptography.Encoding
nuget System.Security.Cryptography.Primitives
nuget System.Security.Cryptography.ProtectedData
nuget System.Security.Cryptography.X509Certificates
nuget System.Security.Cryptography.Xml
nuget System.Text.Encoding 
nuget System.Text.Encoding.CodePages
nuget System.Text.Encoding.Extensions 
nuget System.Text.Encodings.Web 
nuget System.Text.RegularExpressions 
nuget System.Threading 
nuget System.Threading.Tasks 
nuget System.Threading.Tasks.Dataflow >= 5.0.0
nuget System.Threading.Tasks.Extensions 
nuget System.Threading.Timer 
nuget System.ValueTuple
nuget System.Xml.ReaderWriter 
nuget System.Xml.XDocument 
nuget Teradata.Client.Provider 16.20.3 
nuget TestDataContract 13.1.0.183 
nuget Testing.Common 14.0.0.18
nuget InstallerCommonParts 14.0.0.18 , copy_content_to_output_dir: preserve_newest
nuget BootstrapperCommon 14.0.0.18 , import_targets: false
nuget WixSharp 1.14.4 , import_targets: false
nuget WixSharp.bin 1.14.4 , import_targets: false
nuget Titanium.Web.Proxy 3.0.708-beta 
nuget UIAComWrapper 1.1.0.14
nuget UIHelper 
nuget UnmanagedExports 1.2.7
nuget WebGrease 1.5.2 
nuget WebSocketSharp 1.0.3-rc11 rc
nuget WindowsAPICodePack 1.1.0 
nuget WiX 3.11.2
nuget Xamarin.Android.Support.Design 27.0.2.1
nuget Xamarin.Android.Support.v4 27.0.2.1
nuget Xamarin.Android.Support.v7.AppCompat 27.0.2.1
nuget Xamarin.Android.Support.v7.CardView 27.0.2.1
nuget Xamarin.Android.Support.v7.MediaRouter 27.0.2.1
nuget Xamarin.Forms 3.2.0.839982
nuget XMLDiffPatch 1.0.8.28 prerelease 
nuget YamlDotNet 8.1.0 
nuget Z.EntityFramework.Extensions 3.11.23 prerelease 
nuget MailKit 2.1.2 restriction: >= netstandard2.0
nuget Selenium.WebDriver 3.14.0
nuget Selenium.Support 3.14.0
nuget Tesseract 3.0.2 content: none
nuget Microsoft.IdentityModel.JsonWebTokens 
nuget Microsoft.IdentityModel.Logging 
nuget Microsoft.IdentityModel.Tokens 5.6 
nuget System.IdentityModel.Tokens.Jwt 
nuget Fare 2.1.2
nuget AutoMapper 8.0.0
nuget FluentAssertions
nuget RestSharp
nuget RestSharp.Serializers.NewtonsoftJson
walliski commented 2 years ago

@baronfel

System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

Missing on 6.0.1

baronfel commented 2 years ago

man it would really help this cycle if my windows machine was setup to do dev work

baronfel commented 2 years ago

There are going to be a few more, I got my windows machine set up to round-trip this.

baronfel commented 2 years ago

Turns out there was only one more remaining dependency. PR up for that one now.

forki commented 2 years ago

thanks!!! Paket 6.0.3 is released. Can anyone confirm that it works?

walliski commented 2 years ago

thanks!!! Paket 6.0.3 is released. Can anyone confirm that it works?

Looks good to me, at least on my own machine 👍

sajagi commented 2 years ago

Also works just fine, thanks!

forki commented 2 years ago

@baronfel for MVP!

baronfel commented 2 years ago

that's the secret: gotta leave little nuggets like this so I can swoop in and save the day.

Flohack74 commented 2 years ago

I am off work already today and can only test tomorrow. However kudos for the quick fix!