Browse Source

Support project templates using ${ProjectName} as part of the directory name.

Project template containing ${ProjectName} in the Project/@directory attribute will have the project name expanded.

    <Project name="${ProjectName}.Interface" directory="Base\${ProjectName}.Interface" language="C#">
pull/28/head
Matt Ward 13 years ago
parent
commit
c8af6af505
  1. 7
      src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs

7
src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs

@ -276,7 +276,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
string outerProjectName = projectCreateInformation.ProjectName; string outerProjectName = projectCreateInformation.ProjectName;
try try
{ {
projectCreateInformation.ProjectBasePath = Path.Combine(projectCreateInformation.ProjectBasePath, this.relativePath); projectCreateInformation.ProjectBasePath = Path.Combine(projectCreateInformation.ProjectBasePath, GetRelativePath(projectCreateInformation));
if (!Directory.Exists(projectCreateInformation.ProjectBasePath)) { if (!Directory.Exists(projectCreateInformation.ProjectBasePath)) {
Directory.CreateDirectory(projectCreateInformation.ProjectBasePath); Directory.CreateDirectory(projectCreateInformation.ProjectBasePath);
} }
@ -524,6 +524,11 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
} }
} }
string GetRelativePath(ProjectCreateInformation projectCreateInformation)
{
return StringParser.Parse(this.relativePath, new StringTagPair("ProjectName", projectCreateInformation.ProjectName));
}
void RunPreCreateActions(ProjectCreateInformation projectCreateInformation) void RunPreCreateActions(ProjectCreateInformation projectCreateInformation)
{ {
foreach (var action in preCreateActions) { foreach (var action in preCreateActions) {

Loading…
Cancel
Save