diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineBuilderBase.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineBuilderBase.cs index e03a67f428..5b3f953e1a 100644 --- a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineBuilderBase.cs +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineBuilderBase.cs @@ -12,6 +12,7 @@ public abstract class ModuleInstallingPipelineBuilderBase if (context.WithSourceCode) { pipeline.Add(new SourceCodeDownloadStep()); + pipeline.Add(new CommonPropsStep()); if (context.AddToSolutionFile) { diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/CommonPropsStep.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/CommonPropsStep.cs new file mode 100644 index 0000000000..519cc31c06 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/CommonPropsStep.cs @@ -0,0 +1,29 @@ +using System.IO; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Studio.Packages.Modifying; + +namespace Volo.Abp.Studio.ModuleInstalling.Steps; + +public class CommonPropsStep : ModuleInstallingPipelineStep +{ + public async override Task ExecuteAsync(ModuleInstallingContext context) + { + var moduleFolder = Path.GetDirectoryName(context.TargetModule); + var commonPropsFilePath = Path.Combine(moduleFolder, "common.props"); + + if (!File.Exists(commonPropsFilePath)) + { + return; + } + + var _csprojFileManager = context.ServiceProvider.GetRequiredService(); + + var csProjFiles = Directory.GetFiles(context.GetTargetSourceCodeFolder(), "*.csproj", SearchOption.AllDirectories); + + foreach (var csProjFile in csProjFiles) + { + await _csprojFileManager.AddImportAsync(csProjFile, commonPropsFilePath); + } + } +}