DryIoc.dll 3.0.2

DryIoc v3.0.0 Release Notes

From user perspective

OpenScope behavior changes

Now OpenScope is returning IResolverContext instead of full IContainer.

The consequence is that you won't be able to Register on returned object. But this is OK because even before, any registration done on scope was actually done on container. This was confusing, cause someone may think that registration in scope is separate.

Old code:

    var container = new Container();
    container.Register<A>();

    using (var scope = container.OpenScope())
    {
        scope.Register<B>();
        scope.Resolve<A>();
    }

New code:

    var container = new Container();
    container.Register<A>();
    container.Register<B>();

    using (var scope = container.OpenScope())
    {
        scope.Resolve<A>();
    }

Note: It is still valid to call UseInstance and InjectPropertiesAndFields on the scope, cause IResolverContext defines both methods.

No more ImplicitOpenedRootScope

This rule was added to conform to Microsoft.Extensions.DependencyInjection specification to enable the resolution of scoped service both from scoped and the root container. The latter means that the resolved service will be a singleton despite the fact it is registered as scoped.

The rule instructed the DryIoc to open scope on container creation and most importantly, to dispose this scope together with container.

As of DryIoc v2.12 the new hybrid Reuse.ScopedOrSingleton was added, so you may not need to open the scope to resolve such a service. This reuse means the Rules.WithImplicitOpenedRootScope is no longer neccessary.

Old code:

    var container = new Container(rules => rules.WithImplicitOpenedRootScope());

    container.Register<A>(Reuse.Scoped);
    
    container.Resolve<A>(); // Works, even without an open scope due the rule

New code:

    var container = new Container();

    container.Register<A>(Reuse.ScopedOrSingleton);
    
    container.Resolve<A>(); // Works, and much more clean given the service reuse

Reuse.InResolutionScope changes

Resolution scope is no longer automatically created on Resolve

Previosly for any registered service the call to Resolve may create the scope associated with resolved service, as long the service had a dependency registered with Reuse.InResolutionScope. Now it is no longer happen. The scope will be created only if resolved service is registered with setup: Setup.With(openResolutionScope: true) option.

Old code:

    var container = new Container();
    
    container.Register<A>();
    container.Register<DepOfA>(Reuse.InResolutionScopeOf<A>());
    
    container.Resolve<A>(); // opens scope and DepOfA is successfully injected

New code:

    var container = new Container();
    
    container.Register<A>(setup: Setup.With(openResolutionScope: true));
    container.Register<DepOfA>(Reuse.ScopedTo<A>()); // the new syntax, old is still valid
    
    container.Resolve<A>(); // opens scope and DepOfA is successfully injected

InResolutionScope reuse now is just a Scoped reuse

Resolution scope reuse is the lifetime behavior accosiated with the node in service object graph. Previously resolution scope reuse was separate from scope reuse. It means that scope created via OpenScope did not have any link to scope created for resolved or injected service.

Now it is different and resolution scope is the part of nested open scopes. Therefore resolution scope reuse is just a scoped reuse with the special name, consisting of target resolved/injected service type and/or service key.

That also means Reuse.InResolutionScope which does not specify the type of bound service is just a Reuse.Scoped.

Old code:

    var container = new Container();
    
    container.Register<A>(Reuse.InResolutionScopeOf(serviceKey: "X"));

    container.Resolve<A>(); // Error! No service with service key "X" is found

New code:

    var container = new Container();
    
    container.Register<A>(Reuse.ScopedTo(serviceKey: "X"));

    // resolution scope is just an open scope with the special name
    using (var scope = container.OpenScope(ResolutionScopeName.Of(serviceKey: "X")))
    {
        container.Resolve<A>(); // Works
    }

RegisterDelegate parameter changes

IResolver parameter in RegisterDelegate((IResolver resolver) => ...) was extended by IResolverContext. I said 'extended' because IResolverContext implements the IResolver. Because of this, there is a high chance that your code will compile as before.

Using IResolverContext in delegate will allow you to OpenScope, UseInstance, etc. without bringing the correct container instance inside delegate.

Old code:

    var container = new Container();
    
    container.RegisterDelegate(r => 
    {
        using (var scope => r.Resolver<IContainer>().OpenScope()) { ... }
    });

New code:

    var container = new Container();
    
    container.RegisterDelegate(r => 
    {
        using (var scope => r.OpenScope()) { ... }
    });

CreateFacade changes and no more FallbackContainers

FallbackContainers were not working fully and have a different un-expected issues. This feature was an orthogonal to the rest of DryIoc architecture, so I am happily removed it.

CreateFacade was implemented on top of FallbackContainer and allow to 'override' facaded container registrations. This behavior for instance may be suitable in Tests to override prod service with test mock.

Now CreateFacade is just a sugar no top of Rules.WithFactorySelector(Rules.SelectKeyedOverDefaultFactory(FacadeKey)).

Old code:

    var container = new Container();
    container.Register<A>();
    container.Register<IDepOfA, DepOfA>();

    var facade = container.CreateFacade();
    facade.Register<IDepOfA, TestDeoOfA>();

    facade.Resolve<A>(); // will have TestDeoOfA

New code:

    var container = new Container();
    container.Register<A>();
    container.Register<IDepOfA, DepOfA>();

    var facade = container.CreateFacade();
    facade.Register<IDepOfA, TestDeoOfA>(ContainerTools.FacadeKey);

    // or with custom key
    var facade = container.CreateFacade("test");
    facade.Register<IDepOfA, TestDeoOfA>("test");

    facade.Resolve<A>(); // will have TestDeoOfA

WeaklyReferenced changes

IDisposable services registered with setup: Setup.With(weaklyReferenced: true) are no longer disposed.

The disposal was not guarantied even before, because the weakly referenced service may be garbage collected at any time.

Full change list

  1. Using C# 6 through codebase.
  2. IReuse contents is replaced with IReuseV3 contents, IReuseV3 is removed.
  3. Removed unused compositeParentKey and compositeRequiredType parameters from IResolver.ResolveMany both in DryIoc and DIZero
  4. Removed scope parameter from Resolve and ResolveMany
  5. Removed state and scope parameter from FactoryDelegate due #288 both in DryIoc and DryIocZero
  6. Removed Rules.FallbackContainers
  7. Container.CreateFacade implementation is changed from the use of fallback containers to rules.WithFactorySelector(Rules.SelectKeyedOverDefaultFactory(FacadeKey))
  8. Removed IScopeAccess interface, replaced with IResolverContext.OpenedScope and extension methods.
  9. Removed ContainerWeakRef implementation of IResolverContext. Now IResolverContext is implemented by Container itself.
  10. Added IReuse.Name to support reuse name
  11. Renamed IContainer.ContainerWeakRef into IContainer.ResolverContext
  12. Removed ContainerTools.GetCurrentScope extension. It is replaced by IResolverContext.CurrentScope
  13. Removed obsolete IContainer.EmptyRequest and Request.CreateEmpty
  14. Removed obsolete IContainer.ResolutionStateCache and IContainer.GetOrAddStateItem
  15. Removed obsolete Request.ToRequestInfo
  16. Removed feature outemost parameter of Reuse.InResolutionScopeOf
  17. Removed not necessary trackTransientDisposable parameter from IReuse.Apply method
  18. Removed ResolutionScopeReuse, replaced by CurrentScopeReuse
  19. Changed Reuse.InResolutionScope to be just Reuse.Scoped underneath
  20. Changed obsolete RegisterInstance implementation to just call UseInstance
  21. Removed InstanceFactory which was used by obsolete RegisterInstance
  22. Changed IResolverContext to implement the IResolver instead of holding it as property to simplifies the path to IResolver from the object graph.
  23. Removed unused Request.IsWrappedInFuncWithArgs method
  24. Changed IContainer to implement IResolverContext as it is already does this
  25. Removed IContainer.ResolverContext property
  26. Removed no longer used Request.WithFuncArgs
  27. Changed parameter bool ifUnresolvedReturnDefault to IfUnresolved ifUnresolved in IResolver.Resolve methods to allow to add more IfUnresolved options
  28. renamed: IfAlreadyRegistered parameter to ifAlreadyRegistered in UseInstance methods
  29. Moving OpenScope, UseInstance, InjectPropertiesAndFields from IContainer to IResolverContext
  30. OpenScope no longer accepts the Action<Rules>, but you can always use container.With(Action<Rules>) before opening scope
  31. InjectPropertiesAndFields may define the names of members to inject instead of full blown PropertiesAndFieldsSelector, but there is still possibility to define the selector on container level
  32. Added object[] args parameter into Resolve and ResolveMany
  33. Removed special SingletonScope, using one implementation for both scope and singletons
  34. Removed IScope.GetScopedItemIdOrSelf as it was required only by SingletonScope
  35. Added IScope.TryGet
  36. Moved IContainer.ScopeContext into IResolverContext.ScopeContext
  37. Removed IScopeContext.ScopeContextName, you may provide your name instead
  38. Removed Container.NonAmbientRootScopeName
  39. Disposable services registered with WeaklyReferenced setup are no longer disposed. Because the disposal in this case is optional anyway and the instance may be collected in any given time.
  40. Removed ImplicitOpenedRootScope
  41. Obsoleting WithDefaultReuseInsteadOfTransient replaced by WithDefaultReuse
  42. Changed RegisterDelegate to accept Func{IResolverContext, object} instead of Func{IResolver, object}
  43. Obsoleting WithAutoFallbackResolution replaced by WithAutoFallbackDynamicRegistration
  44. Moved IContainer.With.. methods to ContainerTools extension methods
  45. Obsoleting AutoFallback and ConcreteType resolution rules
  46. Changed PropertiesAndFields.All to include withBase parameter
  47. Obsoleting the Reuse.InResolutionScope

No packages depend on DryIoc.dll.

.NET Framework 3.5

  • No dependencies.

.NET Framework 4.0

  • No dependencies.

.NET Framework 4.5

  • No dependencies.

.NETPortable 0.0

  • No dependencies.

.NETPortable 0.0

  • No dependencies.

Xamarin.Mac 2.0

  • No dependencies.

.NET Standard 1.0

.NET Standard 1.3

.NET Standard 2.0

  • No dependencies.

Version Downloads Last updated
6.0.0-preview-09 30 11/25/2024
6.0.0-preview-08 42 10/31/2024
6.0.0-preview-07 41 03/20/2024
6.0.0-preview-06 37 01/31/2024
5.4.3 50 11/14/2023
5.4.2 35 10/25/2023
5.4.1 46 06/23/2023
5.4.0 52 05/08/2023
5.4.0-preview-01 41 07/01/2023
5.3.4 46 04/19/2023
5.3.3 44 06/29/2023
5.3.2 36 06/27/2023
5.3.1 44 05/11/2023
5.3.0 43 06/30/2023
5.2.2 46 12/30/2022
5.2.1 56 08/17/2022
5.2.0 48 12/18/2022
5.1.0 51 05/18/2023
5.0.2 44 06/30/2023
5.0.1 43 06/27/2023
5.0.0 44 04/18/2022
5.0.0-preview-01 50 06/01/2023
4.8.8 59 03/21/2023
4.8.7 64 02/16/2023
4.8.6 41 02/16/2023
4.8.5 50 02/16/2023
4.8.4 49 02/16/2023
4.8.3 49 09/27/2022
4.8.2 56 05/08/2023
4.8.1 47 10/06/2022
4.8.0 42 05/28/2022
4.7.8 48 09/18/2022
4.7.7 59 05/24/2021
4.7.6 55 03/21/2023
4.7.5 46 05/07/2023
4.7.4 41 02/16/2023
4.7.3 62 09/03/2022
4.7.2 40 01/26/2021
4.7.1 51 05/12/2023
4.7.0 51 07/04/2022
4.7.0-preview-01 60 06/15/2023
4.6.0 49 09/06/2022
4.5.2 47 06/29/2023
4.5.1 55 10/15/2022
4.5.0 46 06/27/2023
4.4.1 49 06/30/2023
4.4.0 49 07/04/2023
4.3.4 46 05/03/2022
4.3.3 38 06/29/2023
4.3.2 41 06/27/2023
4.3.1 58 12/31/2022
4.3.0 44 07/16/2022
4.2.5 52 12/02/2022
4.2.4 49 10/30/2022
4.2.3 48 12/22/2022
4.2.2 48 12/21/2022
4.2.1 46 05/28/2022
4.2.0 55 09/14/2022
4.1.4 59 08/15/2022
4.1.3 49 06/29/2023
4.1.2 47 12/24/2022
4.1.1 45 09/18/2022
4.1.1-preview-01 71 12/25/2022
4.1.0 54 07/06/2022
4.1.0-preview-04 46 08/30/2022
4.1.0-preview-03 74 06/29/2023
4.1.0-preview-02 67 04/29/2023
4.1.0-preview-01 62 05/14/2023
4.0.7 60 07/15/2022
4.0.6 58 05/09/2023
4.0.5 47 10/16/2020
4.0.5-preview-01 50 07/24/2022
4.0.4 48 12/30/2022
4.0.3 52 05/07/2023
4.0.2 51 08/06/2022
4.0.1 45 02/03/2023
4.0.0 48 06/28/2023
4.0.0-preview-02 50 07/01/2023
4.0.0-preview-01 53 08/02/2022
3.1.0-preview-07 43 06/29/2023
3.1.0-preview-06 48 03/07/2023
3.1.0-preview-05 55 05/21/2023
3.1.0-preview-04 57 10/19/2022
3.1.0-preview-03 72 06/30/2023
3.1.0-preview-02 69 07/01/2023
3.1.0-preview-01 48 07/04/2022
3.0.2 73 10/16/2020
3.0.1 49 04/03/2023
3.0.0 47 05/14/2023
3.0.0-preview-12 46 07/01/2023
3.0.0-preview-11 42 07/02/2023
3.0.0-preview-10 61 09/13/2022
3.0.0-preview-09 54 10/18/2022
3.0.0-preview-08 47 07/02/2023
3.0.0-preview-07 42 06/30/2023
3.0.0-preview-06 44 05/19/2023
3.0.0-preview-05 58 06/30/2023
3.0.0-preview-04 46 05/19/2023
3.0.0-preview-03 46 06/29/2023
3.0.0-preview-02 50 05/09/2023
3.0.0-preview-01 71 05/21/2023
2.12.10 47 07/06/2023
2.12.8 43 07/26/2022
2.12.7 41 05/07/2023
2.12.6 43 10/02/2022
2.12.5 37 05/13/2023
2.12.4 48 12/15/2022
2.12.3 46 05/02/2023
2.12.2 42 12/16/2022
2.12.1 46 05/01/2023
2.12.0 57 12/26/2022
2.12.0-preview-01 38 06/27/2023
2.11.6 48 07/02/2022
2.11.5 44 11/08/2022
2.11.4 38 07/02/2023
2.11.3 44 05/10/2023
2.11.2 39 08/25/2022
2.11.1 43 06/27/2023
2.11.0 37 05/08/2023
2.11.0-preview-02 44 09/12/2022
2.11.0-preview-01 41 06/29/2023
2.10.7 49 07/02/2022
2.10.6 40 06/29/2023
2.10.4 42 06/29/2023
2.10.3 47 03/31/2023
2.10.2 43 05/08/2023
2.10.1 44 06/30/2023
2.10.0 48 07/02/2023
2.9.7 62 11/01/2022
2.9.6 49 11/28/2022
2.9.5 44 05/28/2022
2.9.4 49 07/20/2022
2.9.3 50 06/28/2023
2.9.2 48 08/22/2022
2.9.1 50 04/18/2023
2.9.0 45 07/17/2022
2.8.5 52 07/02/2023
2.8.4 48 05/28/2022
2.8.3 46 07/01/2023
2.8.2 52 03/28/2023
2.8.1 44 06/29/2023
2.8.0 44 05/08/2023
2.8.0-preview-01 71 07/01/2022
2.7.1 52 05/15/2023
2.7.0 48 03/31/2023
2.6.4 53 06/27/2023
2.6.3 43 12/05/2022
2.6.3-netcore-rc2 71 12/29/2022
2.6.2 47 07/02/2023
2.6.2-netcore-rc2 50 05/03/2022
2.6.1-netcore-rc2 41 05/22/2023
2.6.0 50 12/04/2022
2.5.1 43 06/28/2023
2.5.0 37 05/11/2023
2.4.3 65 09/10/2022
2.4.2 54 09/05/2022
2.4.1 46 04/23/2023
2.4.0 48 09/27/2022
2.3.0 46 02/15/2023
2.2.2 51 08/28/2022
2.2.1 45 07/24/2022
2.2.0 49 06/30/2023
2.1.3 46 06/29/2023
2.1.2 45 05/28/2022
2.1.1 48 07/19/2022
2.1.0 46 02/16/2023
2.0.2 51 06/30/2023
2.0.1 38 04/02/2023
2.0.0 47 05/10/2023
2.0.0-rc4build353 48 05/05/2023
2.0.0-rc4build352 47 04/08/2023
2.0.0-rc4build351 42 06/30/2023
2.0.0-rc4build350 46 05/21/2023
2.0.0-rc4build349 42 07/06/2023
2.0.0-rc4build348 50 07/20/2022
2.0.0-rc4build347 45 11/20/2022
2.0.0-rc4build346 47 09/29/2022
2.0.0-rc4build345 43 07/05/2023
2.0.0-rc4build344 45 05/28/2022
2.0.0-rc4build343 43 06/25/2023
2.0.0-rc4build342 45 07/03/2023
2.0.0-rc4build341 42 07/20/2022
2.0.0-rc4build340 49 05/12/2023
2.0.0-rc4build339 52 05/21/2023
2.0.0-rc4build338 41 09/09/2022
2.0.0-rc4build337 51 07/21/2022
2.0.0-rc4build336 55 07/02/2023
2.0.0-rc3build340 71 09/11/2022
2.0.0-rc3build339 48 07/01/2022
2.0.0-rc3build338 35 06/30/2023
2.0.0-rc3build337 48 07/02/2023
2.0.0-rc3build336 44 06/30/2023
2.0.0-rc3build335 64 06/29/2023
2.0.0-rc3build334 41 07/02/2023
2.0.0-rc3build333 59 07/01/2023
2.0.0-rc3build332 80 03/18/2023
2.0.0-rc3build331 45 05/28/2022
2.0.0-rc3build330 44 11/12/2022
2.0.0-rc3build329 51 05/27/2022
2.0.0-rc3build328 48 06/29/2023
2.0.0-rc3build327 76 09/06/2022
2.0.0-rc3build326 40 06/30/2023
2.0.0-rc3build325 41 06/29/2023
2.0.0-rc3build324 48 10/02/2022
2.0.0-rc3build323 41 07/01/2022
2.0.0-rc3build322 46 04/26/2023
2.0.0-rc3build321 43 09/13/2022
2.0.0-rc3build320 47 05/03/2023
2.0.0-rc3build319 36 06/28/2023
2.0.0-rc3build318 49 03/20/2023
2.0.0-rc3build317 46 06/29/2023
2.0.0-rc3build316 58 06/24/2023
2.0.0-rc3build315 66 06/30/2023
2.0.0-rc3build314 63 10/24/2022
2.0.0-rc3build313 47 06/29/2023
2.0.0-rc3build312 42 07/04/2023
2.0.0-rc3build311 44 08/09/2022
2.0.0-rc3build310 58 06/30/2023
2.0.0-rc3build309 55 10/05/2022
2.0.0-rc3build308 45 06/27/2023
2.0.0-rc3build307 51 06/29/2023
2.0.0-rc3build306 65 12/03/2022
2.0.0-rc3build304 57 05/06/2023
2.0.0-rc3build303 42 07/02/2023
2.0.0-rc3build302 44 02/03/2023
2.0.0-rc3build301 50 06/29/2023
2.0.0-rc3build300 64 04/26/2023
2.0.0-rc3build299 47 03/08/2023
2.0.0-rc3build298 46 06/27/2023
2.0.0-rc3build297 40 06/30/2023
2.0.0-rc2build297 46 03/26/2023
2.0.0-rc2build295 45 08/17/2022
2.0.0-rc2build294 48 09/05/2022
2.0.0-rc2build293 42 07/01/2023
2.0.0-rc2build292 43 07/04/2023
2.0.0-rc2build291 56 08/24/2023
2.0.0-rc2build289 66 05/22/2023
2.0.0-rc1build371 46 06/29/2023
2.0.0-rc1build366 45 07/01/2023
2.0.0-rc1build288 49 05/28/2022
2.0.0-rc1build287 49 07/04/2023
2.0.0-rc1build286 52 05/06/2023
2.0.0-rc1build285 46 09/17/2022
2.0.0-rc1build284 46 06/29/2023
2.0.0-rc1build283 61 06/30/2023
2.0.0-rc1build282 54 07/17/2022
2.0.0-rc1build281 51 06/29/2023
2.0.0-rc1build280 39 07/02/2023
2.0.0-rc1build279 46 07/03/2023
2.0.0-rc1build278 48 10/28/2022
2.0.0-rc1build277 51 07/22/2022
2.0.0-rc1build276 55 06/27/2023
2.0.0-rc1build275 51 09/05/2022
2.0.0-rc1build274 51 09/08/2022
2.0.0-rc1build273 47 05/28/2022
2.0.0-rc1build272 49 05/21/2023
2.0.0-rc1build271 47 07/03/2023
2.0.0-rc1build270 47 06/27/2023
2.0.0-rc1build269 43 07/19/2022
2.0.0-rc1build268 50 08/27/2022
2.0.0-rc1build267 55 05/14/2023
2.0.0-rc1build266 48 07/04/2023
2.0.0-rc1build265 43 07/01/2023
2.0.0-rc1build264 42 07/02/2023
2.0.0-rc1build263 48 11/21/2022
2.0.0-rc1build262 43 11/12/2022
2.0.0-rc1build261 44 06/30/2023
2.0.0-rc1build260 57 07/23/2022
2.0.0-rc1build259 44 05/21/2023
2.0.0-rc1build258 48 10/16/2022
2.0.0-rc1build255 54 05/20/2023
2.0.0-preview256 44 07/02/2023
2.0.0-preview255 50 05/03/2022
2.0.0-preview254 58 07/26/2022
2.0.0-preview253 47 07/01/2023
2.0.0-preview252 47 07/02/2023
2.0.0-preview251 46 05/15/2023
2.0.0-preview250 46 06/28/2023
2.0.0-preview249 53 06/24/2023
2.0.0-preview248 44 09/09/2022
2.0.0-preview247 53 05/11/2023
2.0.0-preview246 60 05/14/2023
2.0.0-preview245 57 05/17/2023
2.0.0-preview244 41 07/20/2022
2.0.0-preview243 58 06/29/2023
2.0.0-preview242 50 07/17/2022
2.0.0-preview241 60 07/16/2022
2.0.0-preview240 36 06/29/2023
2.0.0-preview239 49 12/31/2022
2.0.0-preview238 41 06/29/2023
2.0.0-preview237 41 07/02/2023
2.0.0-preview236 51 07/07/2022
2.0.0-preview235 53 10/21/2022
2.0.0-preview234 47 06/27/2023
2.0.0-preview233 54 05/10/2023
2.0.0-preview232 60 09/18/2022
2.0.0-preview231 49 05/19/2023
2.0.0-preview230 37 06/29/2023
2.0.0-preview229 45 05/12/2023
2.0.0-preview228 50 07/02/2023
2.0.0-preview227 63 11/22/2022
2.0.0-preview226 51 09/02/2022
2.0.0-preview225 51 05/24/2023
2.0.0-preview224 53 05/28/2022
2.0.0-preview223 54 05/28/2022
2.0.0-preview222 67 07/02/2023
2.0.0-preview221 75 03/18/2023
2.0.0-preview220 48 08/21/2022
2.0.0-preview219 51 07/06/2022
2.0.0-preview218 49 03/17/2023
2.0.0-preview217 46 07/01/2023
2.0.0-preview216 54 03/03/2023
2.0.0-preview215 46 07/01/2023
2.0.0-preview214 59 05/07/2023
2.0.0-preview213 48 06/26/2023
2.0.0-preview212 48 11/04/2022
2.0.0-preview211 40 07/02/2023
2.0.0-preview210 63 05/24/2023
2.0.0-preview209 41 06/30/2023
2.0.0-preview208 43 06/28/2023
2.0.0-preview207 67 05/12/2023
2.0.0-preview206 47 07/02/2023
2.0.0-preview205 64 10/05/2022
2.0.0-preview204 40 07/01/2023
2.0.0-preview203 50 06/28/2023
2.0.0-preview202 44 06/27/2023
2.0.0-preview201 56 05/11/2023
2.0.0-preview200 71 06/24/2023
2.0.0-preview199 47 07/16/2022
2.0.0-preview198 51 07/01/2023
2.0.0-preview197 44 07/02/2023
2.0.0-preview196 46 07/02/2023
2.0.0-preview195 41 08/23/2022
2.0.0-preview194 47 06/30/2023
2.0.0-preview193 55 06/28/2023
2.0.0-preview192 50 09/23/2022
2.0.0-preview191 47 06/30/2023
2.0.0-preview190 58 07/02/2023
2.0.0-preview189 47 05/19/2023
2.0.0-preview188 49 06/30/2023
2.0.0-preview187 57 05/16/2023
2.0.0-preview186 49 06/28/2023
2.0.0-preview185 50 07/04/2023
2.0.0-preview184 64 05/27/2022
2.0.0-preview183 73 06/30/2023
2.0.0-preview182 65 12/04/2022
2.0.0-preview181 50 09/16/2022
2.0.0-preview180 46 09/16/2022
2.0.0-preview179 45 03/17/2023
2.0.0-preview178 57 06/30/2023
2.0.0-preview177 41 06/30/2023
2.0.0-preview176 64 07/16/2022
2.0.0-preview175 56 07/02/2023
2.0.0-preview174 47 07/02/2023
2.0.0-preview173 55 08/13/2022
2.0.0-preview172 43 07/02/2023
2.0.0-preview171 42 07/02/2023
2.0.0-preview170 52 12/07/2022
2.0.0-preview169 49 06/29/2023
2.0.0-preview168 50 06/27/2023
2.0.0-preview167 55 05/03/2022
2.0.0-preview166 57 06/28/2023
2.0.0-preview165 55 06/29/2023
2.0.0-preview164 51 03/20/2023
2.0.0-preview163 48 05/28/2022
2.0.0-preview162 54 03/27/2023
2.0.0-preview161 45 03/01/2023
2.0.0-preview160 59 06/30/2023
2.0.0-preview159 49 07/02/2023
2.0.0-preview158 43 07/26/2022
2.0.0-preview157 46 06/30/2023
2.0.0-preview156 61 11/28/2022
2.0.0-preview155 39 07/06/2023
2.0.0-preview154 68 07/02/2023
2.0.0-preview153 47 07/02/2023
2.0.0-preview152 55 05/09/2023
2.0.0-preview151 66 06/30/2023
2.0.0-preview150 70 09/23/2022
2.0.0-preview148 58 05/28/2022
2.0.0-preview147 56 07/02/2023
2.0.0-preview146 75 07/04/2023
2.0.0-preview145 54 07/02/2023
2.0.0-preview144 49 07/16/2022
2.0.0-preview143 53 06/27/2023
2.0.0-preview142 48 06/28/2023
2.0.0-preview141 51 10/27/2022
2.0.0-preview140 50 05/09/2023
2.0.0-preview139 49 06/28/2023
2.0.0-preview138 45 05/04/2023
2.0.0-preview137 51 06/30/2023
2.0.0-preview136 63 08/24/2023
2.0.0-preview135 47 04/26/2023
2.0.0-preview133 46 06/27/2023
2.0.0-preview132 54 04/26/2023
2.0.0-preview131 48 03/27/2023
2.0.0-preview130 56 11/05/2022
2.0.0-preview129 44 06/29/2023
2.0.0-preview128 71 06/30/2023
2.0.0-preview127 42 05/17/2022
2.0.0-preview126 70 03/30/2023
2.0.0-preview125 50 06/24/2023
2.0.0-preview124 64 07/03/2023
2.0.0-preview123 54 05/27/2022
2.0.0-preview119 52 04/01/2023
2.0.0-preview118 59 05/04/2023
2.0.0-preview116 53 05/07/2023
2.0.0-preview115 63 06/29/2023
2.0.0-preview114 59 05/24/2023
2.0.0-preview113 60 07/12/2022
2.0.0-preview112 44 07/03/2023
2.0.0-preview110 55 04/02/2023
2.0.0-preview109 69 05/12/2023
2.0.0-preview108 52 05/23/2023
2.0.0-preview107 58 07/02/2023
2.0.0-preview105 44 07/02/2023
2.0.0-preview104 71 06/27/2023
2.0.0-preview103 54 05/20/2023
2.0.0-preview102 52 05/04/2022
2.0.0-preview101 45 11/04/2022
2.0.0-beta258 47 05/16/2023
2.0.0-beta254 51 06/29/2023
1.4.1 45 06/27/2023
1.4.0 51 05/08/2023
1.3.1 46 06/27/2023
1.3.0 49 09/10/2022
1.2.2 50 07/13/2022
1.2.1 42 06/28/2023
1.2.0 61 09/03/2022
1.1.1 52 08/28/2022
1.1.0 46 08/16/2022
1.0.11 46 07/02/2023