Tags: .NET 6 Episerver Find Optimizely/Episerver

Warning NU1603: EPiServer.Find.Cms 14.2.1 depends on System.Linq.Async (>= 6.0.0 && < 7.0.0) but System.Linq.Async 6.0.0 was not found. An approximate best match of System.Linq.Async 6.0.1 was resolved.

I do not like warnings, and I prefer to get rid of them. If I upgrade to the latest version of Optimizely CMS (install the NuGet package EPiServer.CMS 12.13.2) and then Install Episerver Search & Navigation (install the NuGet package EPiServer.Find.Cms 14.2.1) – I will get this warning.

Warning NU1603: EPiServer.Find.Cms 14.2.1 depends on System.Linq.Async (>= 6.0.0 && < 7.0.0) but System.Linq.Async 6.0.0 was not found. An approximate best match of System.Linq.Async 6.0.1 was resolved.

If I install the package System.Linq.Async explicitly, like this, the warning goes away. But that shouldn't be necessary!

<ItemGroup>
  <PackageReference Include="EPiServer.CMS" Version="12.13.2" />
  <PackageReference Include="EPiServer.Find.Cms" Version="14.2.1" />
  <PackageReference Include="System.Linq.Async" Version="6.0.1" />
</ItemGroup>

So, why do I receive this warning? The package EPiServer.Find.Cms have a dependency on System.Linq.Async version >=6.0.0 and <7.0.0, but there is no version 6.0.0 available!

Episerver.Find.Cms has a reference to System.Linq.Async 6.0.0–7.0.0

NuGet package dependency resolution will choose the lowest applicable version, but when the lowest version of the dependency range is missing, Visual Studio will complain with a warning before it settles with version 6.0.1.

If you (like me) want to make the warning go away, add a reference to System.Linq.Async version 6.0.1 or pray that Optimizely will update the dependency for EPiServer.Find.CMS from >=6.0.0 and <7.0.0 to >=6.0.1 and <7.0.0.

It is registered as bug FIND-10845.

Update: this has now been corrected as part of update 436, released Janury 3rd 2023.

That's it!