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