add-module: alternative tiered target

pull/3214/head
Yunus Emre Kalkan 6 years ago
parent e3a281092c
commit fcf013c990

@ -7,5 +7,7 @@
public string ModuleClass { get; set; }
public NuGetPackageTarget Target { get; set; }
public NuGetPackageTarget TieredTarget { get; set; }
}
}

@ -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");
}
}
}

@ -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(

@ -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<ModuleWithMastersInfo>(responseContent);
}
}
protected virtual async Task<bool> IsProjectTiered(string[] projectFiles)
{
return projectFiles.Select(ProjectFileNameHelper.GetAssemblyNameFromProjectPath)
.Any(p => p.EndsWith(".IdentityServer") || p.EndsWith(".HttpApi.Host"));
}
}
}
Loading…
Cancel
Save