After Windows Server Update (KB5075902, KB5075999, KB890830) the T4 template execution fails with the following Exception:
System.AggregateException: One or more errors occurred. (Das Verzeichnis ist nicht leer. : 'C:\Users\Gnabber\AppData\Local\Temp\4\tmpD02.tmpdir')
---> System.IO.IOException: Das Verzeichnis ist nicht leer. : 'C:\Users\Gnabber\AppData\Local\Temp\4\tmpD02.tmpdir'
at System.IO.FileSystem.RemoveDirectoryInternal(String fullPath, Boolean topLevel, Boolean allowDirectoryNotEmpty)
at System.IO.FileSystem.RemoveDirectory(String fullPath, Boolean recursive)
at System.IO.Directory.Delete(String path)
at Mono.TextTemplating.TemplatingEngine.CompileCode(IEnumerable`1 references, TemplateSettings settings, CodeCompileUnit ccu, CancellationToken token) in /_/Mono.TextTemplating/Mono.TextTemplating/TemplatingEngine.cs:line 372
at Mono.TextTemplating.TemplatingEngine.CompileTemplateInternal(ParsedTemplate pt, String content, ITextTemplatingEngineHost host, TemplateSettings settings, CancellationToken token) in /_/Mono.TextTemplating/Mono.TextTemplating/TemplatingEngine.cs:line 277
at Mono.TextTemplating.TemplatingEngine.ProcessTemplateAsync(ParsedTemplate pt, String content, TemplateSettings settings, ITextTemplatingEngineHost host, CancellationToken token) in /_/Mono.TextTemplating/Mono.TextTemplating/TemplatingEngine.cs:line 88
at Mono.TextTemplating.TemplateGenerator.ProcessTemplateAsync(ParsedTemplate pt, String inputFileName, String inputContent, String outputFileName, TemplateSettings settings, CancellationToken token) in /_/Mono.TextTemplating/Mono.TextTemplating/TemplateGenerator.cs:line 269
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
at Mono.TextTemplating.TextTransform.MainInternal(String[] args) in /_/dotnet-t4/TextTransform.cs:line 226
at Mono.TextTemplating.TextTransform.Main(String[] args) in /_/dotnet-t4/TextTransform.cs:line 42
When inspecting the folder manually it is empty. Could be some weird timing issue from the OS? Since this however totally blocks the generation I would suggest to either wrap the folder deletion in a try/catch or make the deletion of the folder recursive or both in TemplatingEngine.cs:
if (!args.Debug && !r.Errors.HasErrors) {
r.TempFiles.Delete ();
try {
Directory.Delete (tempFolder, true);
} catch (IOException) {
// the directory is in the system temp folder and will be cleaned up by the OS
}
}
After Windows Server Update (KB5075902, KB5075999, KB890830) the T4 template execution fails with the following Exception:
When inspecting the folder manually it is empty. Could be some weird timing issue from the OS? Since this however totally blocks the generation I would suggest to either wrap the folder deletion in a
try/catchor make the deletion of the folder recursive or both inTemplatingEngine.cs: