diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageInfo.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageInfo.cs index 03c5c5493b..6bd6297384 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageInfo.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageInfo.cs @@ -7,5 +7,7 @@ public string ModuleClass { get; set; } public NuGetPackageTarget Target { get; set; } + + public NuGetPackageTarget TieredTarget { get; set; } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFileNameHelper.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFileNameHelper.cs new file mode 100644 index 0000000000..2c86fe54f5 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFileNameHelper.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace Volo.Abp.Cli.ProjectModification +{ + public static class ProjectFileNameHelper + { + + public static string GetAssemblyNameFromProjectPath(string projectFile) + { + return projectFile + .Substring(projectFile.LastIndexOf(Path.DirectorySeparatorChar) + 1) + .RemovePostFix(StringComparison.OrdinalIgnoreCase, ".csproj"); + } + } +} 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 9d155ba079..b2f5421e6e 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 @@ -94,14 +94,7 @@ namespace Volo.Abp.Cli.ProjectModification public static string[] GetAssemblyNames(string[] projectFiles) { - return projectFiles.Select(GetAssemblyName).ToArray(); - } - - public static string GetAssemblyName(string projectFile) - { - return projectFile - .Substring(projectFile.LastIndexOf(Path.DirectorySeparatorChar) + 1) - .RemovePostFix(StringComparison.OrdinalIgnoreCase, ".csproj"); + return projectFiles.Select(ProjectFileNameHelper.GetAssemblyNameFromProjectPath).ToArray(); } private static string FindProjectEndsWith( 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 e369690785..106ce97d8c 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 @@ -143,7 +143,12 @@ namespace Volo.Abp.Cli.ProjectModification { foreach (var nugetPackage in module.NugetPackages) { - var targetProjectFile = ProjectFinder.FindNuGetTargetProjectFile(projectFiles, nugetPackage.Target); + var nugetTarget = + await IsProjectTiered(projectFiles) && nugetPackage.TieredTarget != NuGetPackageTarget.Undefined + ? nugetPackage.TieredTarget + : nugetPackage.Target; + + var targetProjectFile = ProjectFinder.FindNuGetTargetProjectFile(projectFiles, nugetTarget); if (targetProjectFile == null) { Logger.LogDebug($"Target project is not available for this NuGet package '{nugetPackage.Name}'"); @@ -234,5 +239,11 @@ namespace Volo.Abp.Cli.ProjectModification return JsonSerializer.Deserialize(responseContent); } } + + protected virtual async Task IsProjectTiered(string[] projectFiles) + { + return projectFiles.Select(ProjectFileNameHelper.GetAssemblyNameFromProjectPath) + .Any(p => p.EndsWith(".IdentityServer") || p.EndsWith(".HttpApi.Host")); + } } } \ No newline at end of file