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