diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs
index 5aec31e0b9..10c65d95e5 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs
@@ -14,6 +14,7 @@ using System.Threading.Tasks;
using Volo.Abp.Cli.Http;
using Volo.Abp.Cli.ProjectBuilding.Templates.App;
using Volo.Abp.Cli.ProjectBuilding.Templates.Console;
+using Volo.Abp.Cli.ProjectBuilding.Templates.Maui;
using Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule;
using Volo.Abp.Cli.ProjectBuilding.Templates.Wpf;
using Volo.Abp.DependencyInjection;
@@ -278,7 +279,7 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency
}
var matches = Regex.Matches(stringBuilder.ToString(),
- $"({AppTemplate.TemplateName}|{AppNoLayersProTemplate.TemplateName}|{AppNoLayersTemplate.TemplateName}|{AppProTemplate.TemplateName}|{ModuleTemplate.TemplateName}|{ModuleProTemplate.TemplateName}|{ConsoleTemplate.TemplateName}|{WpfTemplate.TemplateName})-(.+).zip");
+ $"({AppTemplate.TemplateName}|{AppNoLayersProTemplate.TemplateName}|{AppNoLayersTemplate.TemplateName}|{AppProTemplate.TemplateName}|{ModuleTemplate.TemplateName}|{ModuleProTemplate.TemplateName}|{ConsoleTemplate.TemplateName}|{WpfTemplate.TemplateName}|{MauiTemplate.TemplateName})-(.+).zip");
foreach (Match match in matches)
{
templateList.Add((match.Groups[1].Value, match.Groups[2].Value));
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeApplicationIdGuidStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeApplicationIdGuidStep.cs
new file mode 100644
index 0000000000..d37b7a67c3
--- /dev/null
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeApplicationIdGuidStep.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Linq;
+
+namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps;
+
+public class ChangeApplicationIdGuidStep: ProjectBuildPipelineStep
+{
+ public override void Execute(ProjectBuildContext context)
+ {
+ var projectFile = context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.csproj"));
+
+ projectFile?.SetContent(projectFile.Content.Replace("27317750-B571-4690-B433-B358B2480E01", Guid.NewGuid().ToString()));
+ }
+}
\ No newline at end of file
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 d41556812a..f59c373984 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
@@ -8,6 +8,7 @@ using Volo.Abp.Cli.Http;
using Volo.Abp.Cli.ProjectBuilding.Building;
using Volo.Abp.Cli.ProjectBuilding.Templates.App;
using Volo.Abp.Cli.ProjectBuilding.Templates.Console;
+using Volo.Abp.Cli.ProjectBuilding.Templates.Maui;
using Volo.Abp.Cli.ProjectBuilding.Templates.Microservice;
using Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule;
using Volo.Abp.Cli.ProjectBuilding.Templates.Wpf;
@@ -70,6 +71,8 @@ public class TemplateInfoProvider : ITemplateInfoProvider, ITransientDependency
return new ConsoleTemplate();
case WpfTemplate.TemplateName:
return new WpfTemplate();
+ case MauiTemplate.TemplateName:
+ return new MauiTemplate();
default:
throw new Exception("There is no template found with given name: " + name);
}
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplate.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplate.cs
new file mode 100644
index 0000000000..e9c59a97a1
--- /dev/null
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplate.cs
@@ -0,0 +1,15 @@
+namespace Volo.Abp.Cli.ProjectBuilding.Templates.Maui;
+
+public class MauiTemplate : MauiTemplateBase
+{
+ ///
+ /// "maui".
+ ///
+ public const string TemplateName = "maui";
+
+ public MauiTemplate()
+ : base(TemplateName)
+ {
+ DocumentUrl = CliConsts.DocsLink + "/en/abp/latest/Startup-Templates/MAUI";
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplateBase.cs
new file mode 100644
index 0000000000..399773ce32
--- /dev/null
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplateBase.cs
@@ -0,0 +1,24 @@
+using System.Collections.Generic;
+using JetBrains.Annotations;
+using Volo.Abp.Cli.ProjectBuilding.Building;
+using Volo.Abp.Cli.ProjectBuilding.Building.Steps;
+
+namespace Volo.Abp.Cli.ProjectBuilding.Templates.Maui;
+
+public class MauiTemplateBase: TemplateInfo
+{
+ protected MauiTemplateBase([NotNull] string name) :
+ base(name)
+ {
+ }
+
+ public override IEnumerable GetCustomSteps(ProjectBuildContext context)
+ {
+ var steps = new List
+ {
+ new ChangeApplicationIdGuidStep()
+ };
+
+ return steps;
+ }
+}
\ No newline at end of file
diff --git a/templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj b/templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj
index 7b0ed79b69..fb3fc0a74a 100644
--- a/templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj
+++ b/templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj
@@ -17,7 +17,7 @@
MyCompanyName.MyProjectName
- com.mycompanyname.myprojectname
+ com.companyname.mycompanyname.myprojectname
27317750-B571-4690-B433-B358B2480E01
@@ -34,10 +34,7 @@
-
-
-
-
+