diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index c45b544893..168843e6e8 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -26,8 +26,9 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien public NewCommand(TemplateProjectBuilder templateProjectBuilder , ITemplateInfoProvider templateInfoProvider, ConnectionStringProvider connectionStringProvider, + SolutionPackageVersionFinder solutionPackageVersionFinder, ICmdHelper cmdHelper) - : base(connectionStringProvider, cmdHelper) + : base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper) { TemplateProjectBuilder = templateProjectBuilder; TemplateInfoProvider = templateInfoProvider; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 8c511ed92a..2ff3d6fbec 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -5,6 +5,7 @@ using ICSharpCode.SharpZipLib.Core; using ICSharpCode.SharpZipLib.Zip; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using Volo.Abp.Cli.ProjectModification; using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.ProjectBuilding; @@ -18,12 +19,14 @@ namespace Volo.Abp.Cli.Commands; public abstract class ProjectCreationCommandBase { public ConnectionStringProvider ConnectionStringProvider { get; } + public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; } public ICmdHelper CmdHelper { get; } public ILogger Logger { get; set; } - public ProjectCreationCommandBase(ConnectionStringProvider connectionStringProvider, ICmdHelper cmdHelper) + public ProjectCreationCommandBase(ConnectionStringProvider connectionStringProvider, SolutionPackageVersionFinder solutionPackageVersionFinder, ICmdHelper cmdHelper) { ConnectionStringProvider = connectionStringProvider; + SolutionPackageVersionFinder = solutionPackageVersionFinder; CmdHelper = cmdHelper; Logger = NullLogger.Instance; @@ -108,13 +111,16 @@ public abstract class ProjectCreationCommandBase SolutionName solutionName; if (MicroserviceServiceTemplateBase.IsMicroserviceServiceTemplate(template)) { - var microserviceSolutionName = FindMicroserviceSolutionName(outputFolderRoot); + var slnFile = Directory.GetFiles(outputFolderRoot, "*.sln").FirstOrDefault(); - if (microserviceSolutionName == null) + if (slnFile == null) { throw new CliUsageException("This command should be run inside a folder that contains a microservice solution!"); } + var microserviceSolutionName = Path.GetFileName(slnFile).RemovePostFix(".sln"); + + version ??= SolutionPackageVersionFinder.Find(slnFile); solutionName = SolutionName.Parse(microserviceSolutionName, projectName); outputFolder = MicroserviceServiceTemplateBase.CalculateTargetFolder(outputFolderRoot, projectName); uiFramework = uiFramework == UiFramework.NotSpecified ? FindMicroserviceSolutionUiFramework(outputFolderRoot) : uiFramework; @@ -221,18 +227,6 @@ public abstract class ProjectCreationCommandBase } } - protected string FindMicroserviceSolutionName(string outputFolderRoot) - { - var slnFile = Directory.GetFiles(outputFolderRoot, "*.sln").FirstOrDefault(); - - if (slnFile == null) - { - return null; - } - - return Path.GetFileName(slnFile).RemovePostFix(".sln"); - } - protected UiFramework FindMicroserviceSolutionUiFramework(string outputFolderRoot) { if (Directory.Exists(Path.Combine(outputFolderRoot, "apps", "blazor")))