diff --git a/T4.Build/BuildTemplateGenerator.cs b/T4.Build/BuildTemplateGenerator.cs index a117e62..50d8d57 100644 --- a/T4.Build/BuildTemplateGenerator.cs +++ b/T4.Build/BuildTemplateGenerator.cs @@ -39,12 +39,12 @@ string LockPath return lockPath; } - } - + } + public new string OutputFile - { - get - { + { + get + { if (string.IsNullOrEmpty(base.OutputFile)) { if (ParsedTemplate == null) @@ -54,11 +54,11 @@ string LockPath foreach (var dt in ParsedTemplate.Directives) { if (dt.Name == "output") - ext = dt.Attributes.GetValueOrDefault("extension", ext); - } - base.OutputFile = Path.ChangeExtension(TemplateFile, ext); - } - + ext = dt.Attributes.GetValueOrDefault("extension", ext); + } + base.OutputFile = Path.ChangeExtension(TemplateFile, ext); + } + return base.OutputFile; } } @@ -114,7 +114,14 @@ public bool ProcessTemplate(bool skipUpToDate, out bool skipped) return true; } } - return ProcessTemplate(TemplateFile, OutputFile); + + var requestOutputFile = OutputFile; + var result = ProcessTemplate(TemplateFile, OutputFile); + if (requestOutputFile != OutputFile && File.Exists(OutputFile)) + { + File.Move(OutputFile, requestOutputFile, true); + } + return result; } }