diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs
index e03ba1b9ab..50784a8d90 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs
@@ -73,7 +73,7 @@ namespace Volo.Abp.Cli
if (!latestVersion.IsNullOrEmpty() && currentVersion != latestVersion)
{
Logger.LogInformation("");
- Logger.LogWarning("ABP CLI has a newer version. Please update to get the latest features and fixes.");
+ Logger.LogWarning("ABP CLI has a newer version (" + latestVersion + "). Please update to get the latest features and fixes.");
Logger.LogWarning("");
Logger.LogWarning("Update Command: ");
Logger.LogWarning(" dotnet tool update -g Volo.Abp.Cli");
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeLocalhostPortStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeLocalhostPortStep.cs
new file mode 100644
index 0000000000..e902e245cf
--- /dev/null
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeLocalhostPortStep.cs
@@ -0,0 +1,35 @@
+namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
+{
+ public class ChangeLocalhostPortStep : ProjectBuildPipelineStep
+ {
+ public string LaunchSettingsFilePath { get; }
+ public int[] PortNumbers { get; }
+
+ public ChangeLocalhostPortStep(
+ string launchSettingsFilePath,
+ params int[] portNumbers)
+ {
+ Check.NotNullOrEmpty(portNumbers, nameof(portNumbers));
+
+ LaunchSettingsFilePath = launchSettingsFilePath;
+ PortNumbers = portNumbers;
+ }
+
+ public override void Execute(ProjectBuildContext context)
+ {
+ var launchSettings = context.GetFile(LaunchSettingsFilePath);
+ var randomPort = RandomHelper.GetRandom(50001, 59990);
+ var newContent = launchSettings.Content;
+
+ for (var i = 0; i < PortNumbers.Length; i++)
+ {
+ newContent = newContent.Replace(
+ PortNumbers[i].ToString(),
+ (randomPort + i).ToString()
+ );
+ }
+
+ launchSettings.SetContent(newContent);
+ }
+ }
+}
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs
index 1aa9f5b6ef..e23e0ebe0e 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs
@@ -9,15 +9,15 @@ namespace Volo.Abp.Cli.ProjectBuilding
{
public TemplateInfo GetDefault()
{
- return Get(MvcApplicationTemplate.TemplateName);
+ return Get(MvcTemplate.TemplateName);
}
public TemplateInfo Get(string name)
{
switch (name)
{
- case MvcApplicationTemplate.TemplateName:
- return new MvcApplicationTemplate();
+ case MvcTemplate.TemplateName:
+ return new MvcTemplate();
case MvcModuleTemplate.TemplateName:
return new MvcModuleTemplate();
case ServiceTemplate.TemplateName:
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcApplicationTemplate.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcTemplate.cs
similarity index 82%
rename from framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcApplicationTemplate.cs
rename to framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcTemplate.cs
index b40d577285..0286a484da 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcApplicationTemplate.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcTemplate.cs
@@ -4,14 +4,14 @@ using Volo.Abp.Cli.ProjectBuilding.Building.Steps;
namespace Volo.Abp.Cli.ProjectBuilding.Templates
{
- public class MvcApplicationTemplate : TemplateInfo
+ public class MvcTemplate : TemplateInfo
{
///
/// "mvc".
///
public const string TemplateName = "mvc";
- public MvcApplicationTemplate()
+ public MvcTemplate()
: base(TemplateName, DatabaseProvider.EntityFrameworkCore)
{
}
@@ -21,6 +21,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates
var steps = new List();
SwitchDatabaseProvider(context, steps);
RemoveOtherDatabaseProviders(context, steps);
+ ChangeLocalhostPort(steps);
return steps;
}
@@ -47,5 +48,16 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.MongoDB"));
}
}
+
+ private void ChangeLocalhostPort(List steps)
+ {
+ steps.Add(
+ new ChangeLocalhostPortStep(
+ "/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json",
+ 53929,
+ 53932
+ )
+ );
+ }
}
}
\ No newline at end of file