diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/BlazorProjectTypeChecker.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/BlazorProjectTypeChecker.cs new file mode 100644 index 0000000000..b7806ce4f1 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/BlazorProjectTypeChecker.cs @@ -0,0 +1,14 @@ +using System.IO; + +namespace Volo.Abp.Cli.ProjectModification +{ + public static class BlazorProjectTypeChecker + { + public static bool IsBlazorServerProject(string blazorProjectPath) + { + var blazorProjectCsprojContent = File.ReadAllText(blazorProjectPath); + + return !blazorProjectCsprojContent.Contains("Microsoft.NET.Sdk.BlazorWebAssembly"); + } + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs index 68b6e4fb44..751db222a5 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs @@ -14,6 +14,8 @@ MongoDB = 9, SignalR = 10, Blazor = 11, - IdentityServer = 12 + IdentityServer = 12, + BlazorServer = 13, + BlazorWebAssembly = 14 } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs index 0ac4bb2a51..d0925c6d0d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs @@ -49,6 +49,12 @@ namespace Volo.Abp.Cli.ProjectModification FindProjectEndsWith(projectFiles, assemblyNames, ".HttpApi.Host"); case NuGetPackageTarget.Blazor: return FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor"); + case NuGetPackageTarget.BlazorWebAssembly: + var BlazorWebAssemblyTargetProject = FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor"); + return !BlazorProjectTypeChecker.IsBlazorServerProject(BlazorWebAssemblyTargetProject) ? BlazorWebAssemblyTargetProject : null; + case NuGetPackageTarget.BlazorServer: + var BlazorServerTargetProject = FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor"); + return BlazorProjectTypeChecker.IsBlazorServerProject(BlazorServerTargetProject) ? BlazorServerTargetProject : null; default: return null; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs index 6ebcad2c08..f268cc68ed 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs @@ -37,7 +37,7 @@ namespace Volo.Abp.Cli.ProjectModification DerivedClassFinder moduleClassFinder, ModuleClassDependcyAdder moduleClassDependcyAdder, IRemoteServiceExceptionHandler remoteServiceExceptionHandler, - BundleCommand bundleCommand, + BundleCommand bundleCommand, CliHttpClientFactory cliHttpClientFactory) { JsonSerializer = jsonSerializer; @@ -105,7 +105,7 @@ namespace Volo.Abp.Cli.ProjectModification ModuleClassDependcyAdder.Add(moduleFiles.First(), package.ModuleClass); } - if (package.Target == NuGetPackageTarget.Blazor) + if (package.Target == NuGetPackageTarget.Blazor || package.Target == NuGetPackageTarget.BlazorServer || package.Target == NuGetPackageTarget.BlazorWebAssembly) { await RunBundleForBlazorAsync(projectFile); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index 02ac2fd629..44d8c26a9f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -159,19 +159,21 @@ namespace Volo.Abp.Cli.ProjectModification if (blazorProject == null) { await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.Blazor, isProjectTiered); + await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.BlazorServer, isProjectTiered); + await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.BlazorWebAssembly, isProjectTiered); await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor"); } else { - var isBlazorServer = IsBlazorServerProject(blazorProject); + var isBlazorServer = BlazorProjectTypeChecker.IsBlazorServerProject(blazorProject); if (isBlazorServer) { - await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor.WebAssembly"); + await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.BlazorWebAssembly, isProjectTiered); } else { - await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor.Server"); + await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.BlazorServer, isProjectTiered); } } @@ -195,13 +197,6 @@ namespace Volo.Abp.Cli.ProjectModification } } - private bool IsBlazorServerProject(string blazorProjectPath) - { - var blazorProjectCsprojContent = File.ReadAllText(blazorProjectPath); - - return !blazorProjectCsprojContent.Contains("Microsoft.NET.Sdk.BlazorWebAssembly"); - } - private async Task RemoveProjectByTarget(ModuleWithMastersInfo module, string moduleSolutionFile, NuGetPackageTarget target, bool isTieredProject) { @@ -589,13 +584,13 @@ namespace Volo.Abp.Cli.ProjectModification { Name = $"{module.Name}.Blazor.WebAssembly", ModuleClass = $"{module.Name}.Blazor.{moduleProjectName}BlazorWebAssemblyModule", - Target = NuGetPackageTarget.Blazor + Target = NuGetPackageTarget.BlazorWebAssembly }, new NugetPackageInfo { Name = $"{module.Name}.Blazor.Server", ModuleClass = $"{module.Name}.Blazor.{moduleProjectName}BlazorServerModule", - Target = NuGetPackageTarget.Blazor + Target = NuGetPackageTarget.BlazorServer }, new NugetPackageInfo {