Matt Ward

NuGet Support in Visual Studio for Mac 8.5

Changes

  • NuGet 5.4 support
  • Support Plugin-based NuGet Credential Providers
  • Fixed requests bypassing the native macOS HTTP handler

More information on all the new features and changes in Visual Studio for Mac 8.5 can be found in the release notes.

NuGet 5.4 support

NuGet 5.4.0.6315 is now included with Visual Studio for Mac 8.5.

Support Plugin-based NuGet Credential Providers

NuGet credential provider plugins are now supported by Visual Studio for Mac.

Plugins are self-contained executables which provide credentials for NuGet package sources. One example is the Azure Artifacts Credential Provider which Visual Studio for Mac can now use whilst it does not have integrated support for accessing packages sources available from Azure DevOps.

Bug Fixes

Fixed HTTP requests bypassing the native macOS HTTP handler

Restoring or installing a NuGet package into a project that uses PackageReferences was bypassing the native macOS HTTP handler.

This was due to NuGet’s CachingSourceProvider creating its own set of INuGetResourceProviders when it creates a set of new SourceRepository instances. This resulted in the default HttpSourceResourceProvider being used, instead of the custom one provided by Visual Studio for Mac. The default HttpSourceResourceProvider uses Mono’s HttpClientHandler not the native HTTP Client handle NSUrlSessionHandler provided by Xamarin.Mac. This would happen when the Nuget package was was downloaded.

NuGet 5.4 now supports defining custom INuGetResourceProvider factory that is used globally. This is now used by Visual Studio for Mac so all HTTP requests use the native macOS HTTP handler NSUrlSessionHandler.