diff --git a/src/JsonSchema/JsonSchema.csproj b/src/JsonSchema/JsonSchema.csproj index 18c0dd0292..13edd52c81 100644 --- a/src/JsonSchema/JsonSchema.csproj +++ b/src/JsonSchema/JsonSchema.csproj @@ -1,13 +1,7 @@ - - - Exe - net6.0 - true - Exe - net5.0 + net6.0 true false diff --git a/src/Umbraco.Core/Persistence/Repositories/INodeCountRepository.cs b/src/Umbraco.Core/Persistence/Repositories/INodeCountRepository.cs new file mode 100644 index 0000000000..4ae191fa72 --- /dev/null +++ b/src/Umbraco.Core/Persistence/Repositories/INodeCountRepository.cs @@ -0,0 +1,9 @@ +using System; + +namespace Umbraco.Cms.Core.Persistence.Repositories; + +public interface INodeCountRepository +{ + int GetNodeCount(Guid nodeType); + int GetMediaCount(); +} diff --git a/src/Umbraco.Core/Services/NodeCountService.cs b/src/Umbraco.Core/Services/NodeCountService.cs new file mode 100644 index 0000000000..7fe77a22a5 --- /dev/null +++ b/src/Umbraco.Core/Services/NodeCountService.cs @@ -0,0 +1,31 @@ +using System; +using Umbraco.Cms.Core.Persistence.Repositories; +using Umbraco.Cms.Core.Scoping; +using Umbraco.Cms.Core.Services; + +namespace Umbraco.Cms.Infrastructure.Services.Implement +{ + public class NodeCountService : INodeCountService + { + private readonly INodeCountRepository _nodeCountRepository; + private readonly IScopeProvider _scopeProvider; + + public NodeCountService(INodeCountRepository nodeCountRepository, IScopeProvider scopeProvider) + { + _nodeCountRepository = nodeCountRepository; + _scopeProvider = scopeProvider; + } + + public int GetNodeCount(Guid nodeType) + { + using var scope = _scopeProvider.CreateScope(autoComplete: true); + return _nodeCountRepository.GetNodeCount(nodeType); + } + + public int GetMediaCount() + { + using var scope = _scopeProvider.CreateScope(autoComplete: true); + return _nodeCountRepository.GetMediaCount(); + } + } +} diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs index 734fcb5661..7ae70440cc 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs @@ -65,6 +65,7 @@ namespace Umbraco.Cms.Infrastructure.DependencyInjection builder.Services.AddUnique(); builder.Services.AddUnique(); builder.Services.AddUnique(); + builder.Services.AddUnique(); return builder; } diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs index 0f8490bbd1..c0bb0ca42e 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs @@ -16,6 +16,8 @@ using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Services.Implement; using Umbraco.Cms.Infrastructure.Packaging; using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement; +using Umbraco.Cms.Infrastructure.Services.Implement; +using Umbraco.Cms.Infrastructure.Telemetry.Providers; using Umbraco.Cms.Infrastructure.Templates; using Umbraco.Extensions; diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NodeCountRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NodeCountRepository.cs new file mode 100644 index 0000000000..fe9bbaa9d7 --- /dev/null +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NodeCountRepository.cs @@ -0,0 +1,44 @@ +using System; +using Umbraco.Cms.Core; +using Umbraco.Cms.Core.Persistence.Repositories; +using Umbraco.Cms.Infrastructure.Persistence.Dtos; +using Umbraco.Cms.Infrastructure.Scoping; +using Umbraco.Extensions; + +namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement; + +public class NodeCountRepository : INodeCountRepository +{ + private readonly IScopeAccessor _scopeAccessor; + + public NodeCountRepository(IScopeAccessor scopeAccessor) => _scopeAccessor = scopeAccessor; + + /// + + public int GetNodeCount(Guid nodeType) + { + var query = _scopeAccessor.AmbientScope.Database.SqlContext.Sql() + .SelectCount() + .From() + .Where(x => x.NodeObjectType == nodeType && x.Trashed == false); + + return _scopeAccessor.AmbientScope.Database.ExecuteScalar(query); + + } + + public int GetMediaCount() + { + var query = _scopeAccessor.AmbientScope.Database.SqlContext.Sql() + .SelectCount() + .From() + .InnerJoin() + .On(left => left.NodeId, right => right.NodeId) + .InnerJoin() + .On(left => left.ContentTypeId, right => right.NodeId) + .Where(x => x.NodeObjectType == Constants.ObjectTypes.Media) + .Where(x => !x.Trashed) + .Where(x => x.Alias != Constants.Conventions.MediaTypes.Folder); + + return _scopeAccessor.AmbientScope.Database.ExecuteScalar(query); + } +} diff --git a/src/Umbraco.Infrastructure/Services/Implement/NodeCountService.cs b/src/Umbraco.Infrastructure/Services/Implement/NodeCountService.cs deleted file mode 100644 index 1de813900b..0000000000 --- a/src/Umbraco.Infrastructure/Services/Implement/NodeCountService.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Scoping; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Infrastructure.Persistence.Dtos; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Infrastructure.Services.Implement -{ - public class NodeCountService : INodeCountService - { - private readonly IScopeProvider _scopeProvider; - - public NodeCountService(IScopeProvider scopeProvider) => _scopeProvider = scopeProvider; - - public int GetNodeCount(Guid nodeType) - { - int count = 0; - using (IScope scope = _scopeProvider.CreateScope(autoComplete: true)) - { - var query = scope.Database.SqlContext.Sql() - .SelectCount() - .From() - .Where(x => x.NodeObjectType == nodeType && x.Trashed == false); - - count = scope.Database.ExecuteScalar(query); - } - - return count; - } - - public int GetMediaCount() - { - using (IScope scope = _scopeProvider.CreateScope(autoComplete: true)) - { - var query = scope.Database.SqlContext.Sql() - .SelectCount() - .From() - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .InnerJoin() - .On(left => left.ContentTypeId, right => right.NodeId) - .Where(x => x.NodeObjectType == Constants.ObjectTypes.Media) - .Where(x => !x.Trashed) - .Where(x => x.Alias != Constants.Conventions.MediaTypes.Folder); - - return scope.Database.ExecuteScalar(query); - } - } - } -} diff --git a/src/Umbraco.Infrastructure/Telemetry/Providers/SystemInformationTelemetryProvider.cs b/src/Umbraco.Infrastructure/Telemetry/Providers/SystemInformationTelemetryProvider.cs index 55b69df851..4d01a41cd9 100644 --- a/src/Umbraco.Infrastructure/Telemetry/Providers/SystemInformationTelemetryProvider.cs +++ b/src/Umbraco.Infrastructure/Telemetry/Providers/SystemInformationTelemetryProvider.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; @@ -15,92 +14,87 @@ using Umbraco.Cms.Infrastructure.Persistence; using Umbraco.Cms.Infrastructure.Telemetry.Interfaces; using Umbraco.Extensions; -namespace Umbraco.Cms.Infrastructure.Telemetry.Providers +namespace Umbraco.Cms.Infrastructure.Telemetry.Providers; + +internal class SystemInformationTelemetryProvider : IDetailedTelemetryProvider, IUserDataService { - internal class SystemInformationTelemetryProvider : IDetailedTelemetryProvider, IUserDataService + private readonly GlobalSettings _globalSettings; + private readonly IHostEnvironment _hostEnvironment; + private readonly HostingSettings _hostingSettings; + private readonly ILocalizationService _localizationService; + private readonly ModelsBuilderSettings _modelsBuilderSettings; + private readonly IUmbracoDatabaseFactory _umbracoDatabaseFactory; + private readonly IUmbracoVersion _version; + + public SystemInformationTelemetryProvider( + IUmbracoVersion version, + ILocalizationService localizationService, + IOptionsMonitor modelsBuilderSettings, + IOptionsMonitor hostingSettings, + IOptionsMonitor globalSettings, + IHostEnvironment hostEnvironment, + IUmbracoDatabaseFactory umbracoDatabaseFactory) { - private readonly IUmbracoVersion _version; - private readonly ILocalizationService _localizationService; - private readonly IHostEnvironment _hostEnvironment; - private readonly Lazy _database; - private readonly GlobalSettings _globalSettings; - private readonly HostingSettings _hostingSettings; - private readonly ModelsBuilderSettings _modelsBuilderSettings; + _version = version; + _localizationService = localizationService; + _hostEnvironment = hostEnvironment; + _umbracoDatabaseFactory = umbracoDatabaseFactory; - public SystemInformationTelemetryProvider( - IUmbracoVersion version, - ILocalizationService localizationService, - IOptions modelsBuilderSettings, - IOptions hostingSettings, - IOptions globalSettings, - IHostEnvironment hostEnvironment, - Lazy database) + _globalSettings = globalSettings.CurrentValue; + _hostingSettings = hostingSettings.CurrentValue; + _modelsBuilderSettings = modelsBuilderSettings.CurrentValue; + } + + private string CurrentWebServer => IsRunningInProcessIIS() ? "IIS" : "Kestrel"; + + private string ServerFramework => RuntimeInformation.FrameworkDescription; + + private string ModelsBuilderMode => _modelsBuilderSettings.ModelsMode.ToString(); + + private string CurrentCulture => Thread.CurrentThread.CurrentCulture.ToString(); + + private bool IsDebug => _hostingSettings.Debug; + + private bool UmbracoPathCustomized => _globalSettings.UmbracoPath != Constants.System.DefaultUmbracoPath; + + private string AspEnvironment => _hostEnvironment.EnvironmentName; + + private string ServerOs => RuntimeInformation.OSDescription; + + private string DatabaseProvider => _umbracoDatabaseFactory.CreateDatabase().DatabaseType.GetProviderName(); + + public IEnumerable GetInformation() => + new UsageInformation[] { - _version = version; - _localizationService = localizationService; - _hostEnvironment = hostEnvironment; - _database = database; - _globalSettings = globalSettings.Value; - _hostingSettings = hostingSettings.Value; - _modelsBuilderSettings = modelsBuilderSettings.Value; + new(Constants.Telemetry.ServerOs, ServerOs), new(Constants.Telemetry.ServerFramework, ServerFramework), + new(Constants.Telemetry.OsLanguage, CurrentCulture), + new(Constants.Telemetry.WebServer, CurrentWebServer), + new(Constants.Telemetry.ModelsBuilderMode, ModelsBuilderMode), + new(Constants.Telemetry.CustomUmbracoPath, UmbracoPathCustomized), + new(Constants.Telemetry.AspEnvironment, AspEnvironment), new(Constants.Telemetry.IsDebug, IsDebug), + new(Constants.Telemetry.DatabaseProvider, DatabaseProvider) + }; + + public IEnumerable GetUserData() => + new UserData[] + { + new("Server OS", ServerOs), new("Server Framework", ServerFramework), + new("Default Language", _localizationService.GetDefaultLanguageIsoCode()), + new("Umbraco Version", _version.SemanticVersion.ToSemanticStringWithoutBuild()), + new("Current Culture", CurrentCulture), + new("Current UI Culture", Thread.CurrentThread.CurrentUICulture.ToString()), + new("Current Webserver", CurrentWebServer), new("Models Builder Mode", ModelsBuilderMode), + new("Debug Mode", IsDebug.ToString()), new("Database Provider", DatabaseProvider) + }; + + private bool IsRunningInProcessIIS() + { + if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + return false; } - private string CurrentWebServer => IsRunningInProcessIIS() ? "IIS" : "Kestrel"; - - private string ServerFramework => RuntimeInformation.FrameworkDescription; - - private string ModelsBuilderMode => _modelsBuilderSettings.ModelsMode.ToString(); - - private string CurrentCulture => Thread.CurrentThread.CurrentCulture.ToString(); - - private bool IsDebug => _hostingSettings.Debug; - - private bool UmbracoPathCustomized => _globalSettings.UmbracoPath != Constants.System.DefaultUmbracoPath; - - private string AspEnvironment => _hostEnvironment.EnvironmentName; - - private string ServerOs => RuntimeInformation.OSDescription; - - private string DatabaseProvider => _database.Value.DatabaseType.GetProviderName(); - - public IEnumerable GetInformation() => - new UsageInformation[] - { - new(Constants.Telemetry.ServerOs, ServerOs), - new(Constants.Telemetry.ServerFramework, ServerFramework), - new(Constants.Telemetry.OsLanguage, CurrentCulture), - new(Constants.Telemetry.WebServer, CurrentWebServer), - new(Constants.Telemetry.ModelsBuilderMode, ModelsBuilderMode), - new(Constants.Telemetry.CustomUmbracoPath, UmbracoPathCustomized), - new(Constants.Telemetry.AspEnvironment, AspEnvironment), - new(Constants.Telemetry.IsDebug, IsDebug), - new(Constants.Telemetry.DatabaseProvider, DatabaseProvider), - }; - - public IEnumerable GetUserData() => - new UserData[] - { - new("Server OS", ServerOs), - new("Server Framework", ServerFramework), - new("Default Language", _localizationService.GetDefaultLanguageIsoCode()), - new("Umbraco Version", _version.SemanticVersion.ToSemanticStringWithoutBuild()), - new("Current Culture", CurrentCulture), - new("Current UI Culture", Thread.CurrentThread.CurrentUICulture.ToString()), - new("Current Webserver", CurrentWebServer), - new("Models Builder Mode", ModelsBuilderMode), - new("Debug Mode", IsDebug.ToString()), - new("Database Provider", DatabaseProvider), - }; - - private bool IsRunningInProcessIIS() - { - if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - return false; - } - - string processName = Path.GetFileNameWithoutExtension(Process.GetCurrentProcess().ProcessName); - return (processName.Contains("w3wp") || processName.Contains("iisexpress")); - } + var processName = Path.GetFileNameWithoutExtension(Process.GetCurrentProcess().ProcessName); + return processName.Contains("w3wp") || processName.Contains("iisexpress"); } } diff --git a/src/Umbraco.Web.BackOffice/Controllers/AuthenticationController.cs b/src/Umbraco.Web.BackOffice/Controllers/AuthenticationController.cs index 78b0aebb15..3a1c9fe4c7 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/AuthenticationController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/AuthenticationController.cs @@ -123,94 +123,6 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers _twoFactorLoginService = twoFactorLoginService; } - [Obsolete("Use constructor that takes all params, scheduled for removal in V11")] - public AuthenticationController( - IBackOfficeSecurityAccessor backofficeSecurityAccessor, - IBackOfficeUserManager backOfficeUserManager, - IBackOfficeSignInManager signInManager, - IUserService userService, - ILocalizedTextService textService, - IUmbracoMapper umbracoMapper, - IOptions globalSettings, - IOptions securitySettings, - ILogger logger, - IIpResolver ipResolver, - IOptions passwordConfiguration, - IEmailSender emailSender, - ISmsSender smsSender, - IHostingEnvironment hostingEnvironment, - LinkGenerator linkGenerator, - IBackOfficeExternalLoginProviders externalAuthenticationOptions, - IBackOfficeTwoFactorOptions backOfficeTwoFactorOptions, - IHttpContextAccessor httpContextAccessor, - IOptions webRoutingSettings) - : this( - backofficeSecurityAccessor, - backOfficeUserManager, - signInManager, - userService, - textService, - umbracoMapper, - globalSettings, - securitySettings, - logger, - ipResolver, - passwordConfiguration, - emailSender, - smsSender, - hostingEnvironment, - linkGenerator, - externalAuthenticationOptions, - backOfficeTwoFactorOptions, - StaticServiceProvider.Instance.GetRequiredService(), - StaticServiceProvider.Instance.GetRequiredService>(), - StaticServiceProvider.Instance.GetRequiredService()) - { - - } - - [Obsolete("Use constructor that takes all params, scheduled for removal in V11")] - public AuthenticationController( - IBackOfficeSecurityAccessor backofficeSecurityAccessor, - IBackOfficeUserManager backOfficeUserManager, - IBackOfficeSignInManager signInManager, - IUserService userService, - ILocalizedTextService textService, - IUmbracoMapper umbracoMapper, - IOptions globalSettings, - IOptions securitySettings, - ILogger logger, - IIpResolver ipResolver, - IOptions passwordConfiguration, - IEmailSender emailSender, - ISmsSender smsSender, - IHostingEnvironment hostingEnvironment, - LinkGenerator linkGenerator, - IBackOfficeExternalLoginProviders externalAuthenticationOptions, - IBackOfficeTwoFactorOptions backOfficeTwoFactorOptions) - : this( - backofficeSecurityAccessor, - backOfficeUserManager, - signInManager, - userService, - textService, - umbracoMapper, - globalSettings, - securitySettings, - logger, - ipResolver, - passwordConfiguration, - emailSender, - smsSender, - hostingEnvironment, - linkGenerator, - externalAuthenticationOptions, - backOfficeTwoFactorOptions, - StaticServiceProvider.Instance.GetRequiredService(), - StaticServiceProvider.Instance.GetRequiredService>()) - { - } - /// /// Returns the configuration for the backoffice user membership provider - used to configure the change password dialog /// diff --git a/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs index e41f865981..c4267d4773 100644 --- a/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs @@ -24,7 +24,8 @@ namespace Umbraco.Cms.Web.BackOffice.Trees { private readonly IMemberGroupService _memberGroupService; - [ActivatorUtilitiesConstructor] + [ + ActivatorUtilitiesConstructor] public MemberGroupTreeController( ILocalizedTextService localizedTextService, UmbracoApiControllerTypeCollection umbracoApiControllerTypeCollection, diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 6943c9e892..373de1bb89 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -25,7 +25,6 @@ - @@ -36,13 +35,7 @@ - - - - - - - + diff --git a/templates/UmbracoPackage/.template.config/template.json b/templates/UmbracoPackage/.template.config/template.json index d0bbc2b925..0d2c7055fb 100644 --- a/templates/UmbracoPackage/.template.config/template.json +++ b/templates/UmbracoPackage/.template.config/template.json @@ -27,26 +27,21 @@ "type": "parameter", "datatype": "choice", "choices": [ - { - "displayName": ".NET 5.0", - "description": "Target net5.0", - "choice": "net5.0" - }, { "displayName": ".NET 6.0", "description": "Target net6.0", "choice": "net6.0" } ], - "defaultValue": "net5.0", - "replaces": "net5.0" + "defaultValue": "net6.0", + "replaces": "net6.0" }, "UmbracoVersion": { "displayName": "Umbraco version", "description": "The version of Umbraco.Cms to add as PackageReference.", "type": "parameter", "datatype": "string", - "defaultValue": "9.5.0-rc", + "defaultValue": "10.0.0-rc", "replaces": "UMBRACO_VERSION_FROM_TEMPLATE" }, "namespaceReplacer": { diff --git a/templates/UmbracoProject/.template.config/template.json b/templates/UmbracoProject/.template.config/template.json index be82ef9b5f..29d464a50d 100644 --- a/templates/UmbracoProject/.template.config/template.json +++ b/templates/UmbracoProject/.template.config/template.json @@ -25,26 +25,21 @@ "type": "parameter", "datatype": "choice", "choices": [ - { - "displayName": ".NET 5.0", - "description": "Target net5.0", - "choice": "net5.0" - }, { "displayName": ".NET 6.0", "description": "Target net6.0", "choice": "net6.0" } ], - "defaultValue": "net5.0", - "replaces": "net5.0" + "defaultValue": "net6.0", + "replaces": "net6.0" }, "UmbracoVersion": { "displayName": "Umbraco version", "description": "The version of Umbraco.Cms to add as PackageReference.", "type": "parameter", "datatype": "string", - "defaultValue": "9.5.0-rc", + "defaultValue": "10.0.0-rc", "replaces": "UMBRACO_VERSION_FROM_TEMPLATE" }, "UseHttpsRedirect": { diff --git a/tests/Umbraco.TestData/Umbraco.TestData.csproj b/tests/Umbraco.TestData/Umbraco.TestData.csproj index a077c6e74b..6343a92def 100644 --- a/tests/Umbraco.TestData/Umbraco.TestData.csproj +++ b/tests/Umbraco.TestData/Umbraco.TestData.csproj @@ -4,8 +4,6 @@ false Umbraco.TestData net6.0 - net5.0 - false diff --git a/tests/Umbraco.Tests.Benchmarks/Umbraco.Tests.Benchmarks.csproj b/tests/Umbraco.Tests.Benchmarks/Umbraco.Tests.Benchmarks.csproj index a5e91ad1dc..4440943322 100644 --- a/tests/Umbraco.Tests.Benchmarks/Umbraco.Tests.Benchmarks.csproj +++ b/tests/Umbraco.Tests.Benchmarks/Umbraco.Tests.Benchmarks.csproj @@ -1,8 +1,6 @@ net6.0 - Exe - net5.0 Exe false false diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/Services/TelemetryProviderTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/Services/TelemetryProviderTests.cs index e6287c80fa..54392df0e4 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Core/Services/TelemetryProviderTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/Services/TelemetryProviderTests.cs @@ -15,6 +15,7 @@ using Umbraco.Cms.Core.Models.Membership; using Umbraco.Cms.Core.Scoping; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement; +using Umbraco.Cms.Infrastructure.Scoping; using Umbraco.Cms.Infrastructure.Telemetry.Providers; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Builders.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj index ecf6a98f99..64ae376541 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj @@ -3,8 +3,6 @@ Exe net6.0 - false - net5.0 Umbraco.Cms.Tests.UnitTests false