diff --git a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/AbpProCliCoreModule.cs b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/AbpProCliCoreModule.cs
index 4d79924c..cfbe255b 100644
--- a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/AbpProCliCoreModule.cs
+++ b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/AbpProCliCoreModule.cs
@@ -48,7 +48,8 @@ public class AbpProCliCoreModule : AbpModule
//ExcludeFiles = "aspnet-core,vben28,abp-vnext-pro-nuget-all,abp-vnext-pro-nuget-simplify,docs,.github,LICENSE,Readme.md",
ReplaceSuffix = ".sln,.csproj,.cs,.cshtml,.json,.ci,.yml,.yaml,.nswag,.DotSettings,.env",
OldCompanyName = "MyCompanyName",
- OldProjectName = "MyProjectName"
+ OldProjectName = "MyProjectName",
+ OldModuleName = "MyModuleName",
},
};
});
diff --git a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Commands/NewCommand.cs b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Commands/NewCommand.cs
index 6d58f611..ca41e633 100644
--- a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Commands/NewCommand.cs
+++ b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Commands/NewCommand.cs
@@ -58,6 +58,7 @@ public class NewCommand : IConsoleCommand, ITransientDependency
context.ReplaceSuffix = templateOptions.ReplaceSuffix;
context.OldCompanyName = templateOptions.OldCompanyName;
context.OldProjectName = templateOptions.OldProjectName;
+ context.OldModuleName = templateOptions.OldModuleName;
// if (commandLineArgs.Target.IsNullOrWhiteSpace())
// {
// GetUsageInfo();
@@ -82,6 +83,15 @@ public class NewCommand : IConsoleCommand, ITransientDependency
return;
}
+ //校验是否输入项目名称
+ context.ModuleName = commandLineArgs.Options.GetOrNull(CommandOptions.Module.Short, CommandOptions.Module.Long);
+ if (context.TemplateKey == "abp-vnext-pro-nuget-module" && context.ModuleName.IsNullOrWhiteSpace())
+ {
+ _logger.LogError("请输入模块名称");
+ GetUsageInfo();
+ return;
+ }
+
var outputFolder = commandLineArgs.Options.GetOrNull(CommandOptions.OutputFolder.Short, CommandOptions.OutputFolder.Long);
outputFolder = outputFolder != null ? Path.GetFullPath(outputFolder) : Directory.GetCurrentDirectory();
diff --git a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Options/LionAbpProTemplateOptions.cs b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Options/LionAbpProTemplateOptions.cs
index d96c0131..4a8f4d71 100644
--- a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Options/LionAbpProTemplateOptions.cs
+++ b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Options/LionAbpProTemplateOptions.cs
@@ -40,9 +40,11 @@ public class LionAbpProTemplateOptions
/// 是否源码版本
///
public bool IsSource { get; set; }
-
-
- public string OldCompanyName { get; set; }
- public string OldProjectName { get; set; }
+
+ public string OldCompanyName { get; set; } = string.Empty;
+
+ public string OldProjectName { get; set; } = string.Empty;
+
+ public string OldModuleName { get; set; } = string.Empty;
}
\ No newline at end of file
diff --git a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeContext.cs b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeContext.cs
index e1c01982..c59a337f 100644
--- a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeContext.cs
+++ b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeContext.cs
@@ -26,6 +26,11 @@ public class SourceCodeContext
/// 替换ProjectName
///
public string OldProjectName { get; set; }
+ ///
+ /// 替换ModuleName
+ ///
+ public string OldModuleName { get; set; }
+
///
/// New CompanyName
///
@@ -34,6 +39,12 @@ public class SourceCodeContext
/// New ProjectName
///
public string ProjectName { get; set; }
+
+ ///
+ /// New ModuleName
+ ///
+ public string ModuleName { get; set; }
+
///
/// 输入文件夹
///
diff --git a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeManager.cs b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeManager.cs
index 0567f672..7bfdb99a 100644
--- a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeManager.cs
+++ b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeManager.cs
@@ -35,7 +35,7 @@ public class SourceCodeManager : ITransientDependency, ISourceCodeManager
var localCacheFile = Path.Combine(CliPaths.TemplateCache, _options.RepositoryId + "-" + version + ".zip");
DirectoryHelper.DeleteIfExists(Path.Combine(CliPaths.TemplateCache, _options.RepositoryId + "-" + version), true);
-
+
_logger.LogInformation($"Lion AbpPro Version:{version}");
_logger.LogInformation($"模板生成中......");
@@ -120,7 +120,16 @@ public class SourceCodeManager : ITransientDependency, ISourceCodeManager
{
try
{
- ReplaceHelper.ReplaceTemplates(context.ExtractProjectPath, context.OldCompanyName, context.OldProjectName, context.CompanyName, context.ProjectName, context.ReplaceSuffix);
+ ReplaceHelper.ReplaceTemplates(
+ context.ExtractProjectPath,
+ context.OldCompanyName,
+ context.OldProjectName,
+ context.OldModuleName,
+ context.CompanyName,
+ context.ProjectName,
+ context.ModuleName,
+ context.ReplaceSuffix);
+
if (context.IsSource)
{
context.TemplateFolder = context.ExtractProjectPath;
diff --git a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplaceHelper.cs b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplaceHelper.cs
index 6782f4b2..e21b9ff4 100644
--- a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplaceHelper.cs
+++ b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplaceHelper.cs
@@ -2,19 +2,19 @@
public static class ReplaceHelper
{
- public static void ReplaceTemplates(string sourcePath, string oldCompanyName, string oldProjectName, string companyName, string projectName, string replaceSuffix)
- {
- try
- {
- RenameTemplate(sourcePath, oldCompanyName, oldProjectName, companyName, projectName, replaceSuffix);
- }
- catch (Exception ex)
- {
- throw new UserFriendlyException($"生成模板失败{ex.Message}");
- }
- }
-
- private static void ReplaceTemplates(string sourcePath, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName,
+ // public static void ReplaceTemplates(string sourcePath, string oldCompanyName, string oldProjectName, string companyName, string projectName, string replaceSuffix)
+ // {
+ // try
+ // {
+ // RenameTemplate(sourcePath, oldCompanyName, oldProjectName, companyName, projectName, replaceSuffix);
+ // }
+ // catch (Exception ex)
+ // {
+ // throw new UserFriendlyException($"生成模板失败{ex.Message}");
+ // }
+ // }
+
+ public static void ReplaceTemplates(string sourcePath, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName,
string replaceSuffix)
{
try
@@ -27,12 +27,12 @@ public static class ReplaceHelper
}
}
- private static void RenameTemplate(string sourcePath, string oldCompanyName, string oldProjectName, string companyName, string projectName, string replaceSuffix)
- {
- RenameAllDirectories(sourcePath, oldCompanyName, oldProjectName, companyName, projectName);
-
- RenameAllFileNameAndContent(sourcePath, oldCompanyName, oldProjectName, companyName, projectName, replaceSuffix);
- }
+ // private static void RenameTemplate(string sourcePath, string oldCompanyName, string oldProjectName, string companyName, string projectName, string replaceSuffix)
+ // {
+ // RenameAllDirectories(sourcePath, oldCompanyName, oldProjectName, companyName, projectName);
+ //
+ // RenameAllFileNameAndContent(sourcePath, oldCompanyName, oldProjectName, companyName, projectName, replaceSuffix);
+ // }
private static void RenameTemplate(string sourcePath, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName,
string replaceSuffix)
@@ -41,29 +41,29 @@ public static class ReplaceHelper
RenameAllFileNameAndContent(sourcePath, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, replaceSuffix);
}
- private static void RenameAllDirectories(string sourcePath, string oldCompanyName, string oldProjectName, string companyName, string projectName)
- {
- var directories = Directory.GetDirectories(sourcePath);
- foreach (var subDirectory in directories)
- {
- RenameAllDirectories(subDirectory, oldCompanyName, oldProjectName, companyName, projectName);
-
- var directoryInfo = new DirectoryInfo(subDirectory);
- if (directoryInfo.Name.Contains(oldCompanyName) ||
- directoryInfo.Name.Contains(oldProjectName))
- {
- var oldDirectoryName = directoryInfo.Name;
- var newDirectoryName = oldDirectoryName.CustomReplace(oldCompanyName, oldProjectName, companyName, projectName);
-
- var newDirectoryPath = Path.Combine(directoryInfo.Parent?.FullName, newDirectoryName);
-
- if (directoryInfo.FullName != newDirectoryPath)
- {
- directoryInfo.MoveTo(newDirectoryPath);
- }
- }
- }
- }
+ // private static void RenameAllDirectories(string sourcePath, string oldCompanyName, string oldProjectName, string companyName, string projectName)
+ // {
+ // var directories = Directory.GetDirectories(sourcePath);
+ // foreach (var subDirectory in directories)
+ // {
+ // RenameAllDirectories(subDirectory, oldCompanyName, oldProjectName, companyName, projectName);
+ //
+ // var directoryInfo = new DirectoryInfo(subDirectory);
+ // if (directoryInfo.Name.Contains(oldCompanyName) ||
+ // directoryInfo.Name.Contains(oldProjectName))
+ // {
+ // var oldDirectoryName = directoryInfo.Name;
+ // var newDirectoryName = oldDirectoryName.CustomReplace(oldCompanyName, oldProjectName, companyName, projectName);
+ //
+ // var newDirectoryPath = Path.Combine(directoryInfo.Parent?.FullName, newDirectoryName);
+ //
+ // if (directoryInfo.FullName != newDirectoryPath)
+ // {
+ // directoryInfo.MoveTo(newDirectoryPath);
+ // }
+ // }
+ // }
+ // }
private static void RenameAllDirectories(string sourcePath, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName)
{
@@ -90,45 +90,45 @@ public static class ReplaceHelper
}
}
- private static void RenameAllFileNameAndContent(string sourcePath, string oldCompanyName, string oldProjectName, string companyName, string projectName, string replaceSuffix)
- {
- var list = new DirectoryInfo(sourcePath)
- .GetFiles()
- .Where(f => replaceSuffix.Contains(f.Extension))
- .ToList();
-
- var encoding = new UTF8Encoding(false);
- foreach (var fileInfo in list)
- {
- // 改文件内容
- var oldContents = File.ReadAllText(fileInfo.FullName, encoding);
- var newContents = oldContents.CustomReplace(oldCompanyName, oldProjectName, companyName, projectName);
-
- // 文件名包含模板关键字
- if (fileInfo.Name.Contains(oldCompanyName)
- || fileInfo.Name.Contains(oldProjectName))
- {
- var oldFileName = fileInfo.Name;
- var newFileName = oldFileName.CustomReplace(oldCompanyName, oldProjectName, companyName, projectName);
-
- var newFilePath = Path.Combine(fileInfo.DirectoryName, newFileName);
- // 无变化才重命名
- if (newFilePath != fileInfo.FullName)
- {
- File.Delete(fileInfo.FullName);
- }
-
- File.WriteAllText(newFilePath, newContents, encoding);
- }
- else
- File.WriteAllText(fileInfo.FullName, newContents, encoding);
- }
-
- foreach (var subDirectory in Directory.GetDirectories(sourcePath))
- {
- RenameAllFileNameAndContent(subDirectory, oldCompanyName, oldProjectName, companyName, projectName, replaceSuffix);
- }
- }
+ // private static void RenameAllFileNameAndContent(string sourcePath, string oldCompanyName, string oldProjectName, string companyName, string projectName, string replaceSuffix)
+ // {
+ // var list = new DirectoryInfo(sourcePath)
+ // .GetFiles()
+ // .Where(f => replaceSuffix.Contains(f.Extension))
+ // .ToList();
+ //
+ // var encoding = new UTF8Encoding(false);
+ // foreach (var fileInfo in list)
+ // {
+ // // 改文件内容
+ // var oldContents = File.ReadAllText(fileInfo.FullName, encoding);
+ // var newContents = oldContents.CustomReplace(oldCompanyName, oldProjectName, companyName, projectName);
+ //
+ // // 文件名包含模板关键字
+ // if (fileInfo.Name.Contains(oldCompanyName)
+ // || fileInfo.Name.Contains(oldProjectName))
+ // {
+ // var oldFileName = fileInfo.Name;
+ // var newFileName = oldFileName.CustomReplace(oldCompanyName, oldProjectName, companyName, projectName);
+ //
+ // var newFilePath = Path.Combine(fileInfo.DirectoryName, newFileName);
+ // // 无变化才重命名
+ // if (newFilePath != fileInfo.FullName)
+ // {
+ // File.Delete(fileInfo.FullName);
+ // }
+ //
+ // File.WriteAllText(newFilePath, newContents, encoding);
+ // }
+ // else
+ // File.WriteAllText(fileInfo.FullName, newContents, encoding);
+ // }
+ //
+ // foreach (var subDirectory in Directory.GetDirectories(sourcePath))
+ // {
+ // RenameAllFileNameAndContent(subDirectory, oldCompanyName, oldProjectName, companyName, projectName, replaceSuffix);
+ // }
+ // }
private static void RenameAllFileNameAndContent(string sourcePath, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName,
string replaceSuffix)
@@ -172,22 +172,22 @@ public static class ReplaceHelper
}
}
- private static string CustomReplace(this string content, string oldCompanyName, string oldProjectName, string companyName, string projectName)
- {
- var result = content.ReplacePackageReferenceBasicManagement()
- .ReplacePackageReferenceLanguageManagement()
- .ReplacePackageReferenceFileManagement()
- .ReplacePackageReferenceDataDictionaryManagement()
- .ReplacePackageReferenceNotificationManagement()
- .ReplacePackageReferenceCore();
-
- result = result
- .Replace(oldCompanyName, companyName)
- .Replace(oldProjectName, projectName)
- ;
-
- return result;
- }
+ // private static string CustomReplace(this string content, string oldCompanyName, string oldProjectName, string companyName, string projectName)
+ // {
+ // var result = content.ReplacePackageReferenceBasicManagement()
+ // .ReplacePackageReferenceLanguageManagement()
+ // .ReplacePackageReferenceFileManagement()
+ // .ReplacePackageReferenceDataDictionaryManagement()
+ // .ReplacePackageReferenceNotificationManagement()
+ // .ReplacePackageReferenceCore();
+ //
+ // result = result
+ // .Replace(oldCompanyName, companyName)
+ // .Replace(oldProjectName, projectName)
+ // ;
+ //
+ // return result;
+ // }
private static string CustomReplace(this string content, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName)
{
@@ -198,168 +198,21 @@ public static class ReplaceHelper
.ReplacePackageReferenceNotificationManagement()
.ReplacePackageReferenceCore();
- result = result
+ if (oldModuleName.IsNullOrWhiteSpace() || oldModuleName.IsNullOrWhiteSpace())
+ {
+ result = result
+ .Replace(oldCompanyName, companyName)
+ .Replace(oldProjectName, projectName);
+ }
+ else
+ {
+ result = result
.Replace(oldCompanyName, companyName)
.Replace(oldProjectName, projectName)
- .Replace(oldModuleName, moduleName)
- ;
+ .Replace(oldModuleName, moduleName);
+ }
return result;
}
- public static string ReplacePackageReferenceCore(this string content)
- {
-
- return content
- .Replace("",
- "")
- .Replace("",
- "")
- .Replace("",
- "")
- .Replace("",
- "")
- ;
- }
-
- public static string ReplacePackageReferenceBasicManagement(this string content)
- {
- return content
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace("",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace("",
- "")
- .Replace(
- "",
- "");
- }
-
- public static string ReplacePackageReferenceDataDictionaryManagement(this string content)
- {
- return content
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "");
- }
-
- public static string ReplacePackageReferenceFileManagement(this string content)
- {
- return content
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace("",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace("",
- "")
- .Replace(
- "",
- "");
- }
-
- public static string ReplacePackageReferenceLanguageManagement(this string content)
- {
- return content
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "");
- }
-
- public static string ReplacePackageReferenceNotificationManagement(this string content)
- {
- return content
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "")
- .Replace(
- "",
- "");
- }
}
\ No newline at end of file
diff --git a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplacePackageReferenceExtensions.cs b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplacePackageReferenceExtensions.cs
new file mode 100644
index 00000000..48c718fd
--- /dev/null
+++ b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplacePackageReferenceExtensions.cs
@@ -0,0 +1,159 @@
+namespace Lion.AbpPro.Cli.Utils;
+
+public static class ReplacePackageReferenceExtensions
+{
+ public static string ReplacePackageReferenceCore(this string content)
+ {
+ return content
+ .Replace("",
+ "")
+ .Replace("",
+ "")
+ .Replace("",
+ "")
+ .Replace("",
+ "")
+ ;
+ }
+
+ public static string ReplacePackageReferenceBasicManagement(this string content)
+ {
+ return content
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace("",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace("",
+ "")
+ .Replace(
+ "",
+ "");
+ }
+
+ public static string ReplacePackageReferenceDataDictionaryManagement(this string content)
+ {
+ return content
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "");
+ }
+
+ public static string ReplacePackageReferenceFileManagement(this string content)
+ {
+ return content
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace("",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace("",
+ "")
+ .Replace(
+ "",
+ "");
+ }
+
+ public static string ReplacePackageReferenceLanguageManagement(this string content)
+ {
+ return content
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "");
+ }
+
+ public static string ReplacePackageReferenceNotificationManagement(this string content)
+ {
+ return content
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "")
+ .Replace(
+ "",
+ "");
+ }
+}
\ No newline at end of file