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