From 4e39e3b945bd9fc26cc8f2abd848e4fa34806654 Mon Sep 17 00:00:00 2001 From: Roman Dyagel Date: Mon, 30 Mar 2020 18:44:23 +0300 Subject: [PATCH] Allow to specify temp folder --- Libraries/Westwind.RazorHosting.dll | Bin 44032 -> 44032 bytes Libraries/Westwind.RazorHosting.xml | 5 ++++ Westwind.RazorHosting/Core/RazorEngine.cs | 24 +++++++++++++----- .../Core/RazorEngineConfiguration.cs | 7 +++-- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Libraries/Westwind.RazorHosting.dll b/Libraries/Westwind.RazorHosting.dll index 0a54f78e58f30f7533efff16edc6ac2a43dfcf7b..ba8c8d25ab2dc523d7cbfad51ed5b9fbe7ac9ec0 100644 GIT binary patch literal 44032 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 !z=oWc>IN40!nVC&j}s!8c1=z)-O(%> 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 diff --git a/Libraries/Westwind.RazorHosting.xml b/Libraries/Westwind.RazorHosting.xml index f4e400e..bab057f 100644 --- a/Libraries/Westwind.RazorHosting.xml +++ b/Libraries/Westwind.RazorHosting.xml @@ -394,6 +394,11 @@ Buffer size for streamed template output when using filenames + + + Specifies %Temp% folder for compiled files + + Factory that creates a RazorHost instance in a remote diff --git a/Westwind.RazorHosting/Core/RazorEngine.cs b/Westwind.RazorHosting/Core/RazorEngine.cs index 4b1aa52..da752ad 100644 --- a/Westwind.RazorHosting/Core/RazorEngine.cs +++ b/Westwind.RazorHosting/Core/RazorEngine.cs @@ -489,13 +489,7 @@ public string CompileTemplate( LastGeneratedCode = writer.ToString(); } - var compilerParameters = new CompilerParameters(ReferencedAssemblies.ToArray()); - //compilerParameters.IncludeDebugInformation = true; - compilerParameters.GenerateInMemory = Configuration.CompileToMemory; - - - if (!Configuration.CompileToMemory) - compilerParameters.OutputAssembly = Path.Combine(Configuration.TempAssemblyPath, "_" + Guid.NewGuid().ToString("n") + ".dll"); + var compilerParameters = CreateCompilerParameters(); CompilerResults compilerResults = codeProvider.CompileAssemblyFromDom(compilerParameters, razorResults.GeneratedCode); if (compilerResults.Errors.Count > 0) @@ -735,6 +729,22 @@ public void SetError() } public Exception LastException { get; set; } + + + protected virtual CompilerParameters CreateCompilerParameters() + { + var compilerParameters = new CompilerParameters(ReferencedAssemblies.ToArray()); + //compilerParameters.IncludeDebugInformation = true; + compilerParameters.GenerateInMemory = Configuration.CompileToMemory; + + if (!Configuration.CompileToMemory) + compilerParameters.OutputAssembly = Path.Combine(Configuration.TempAssemblyPath, "_" + Guid.NewGuid().ToString("n") + ".dll"); + + if (Configuration.TempFiles != null) + compilerParameters.TempFiles = Configuration.TempFiles; + + return compilerParameters; + } } public enum CodeProvider diff --git a/Westwind.RazorHosting/Core/RazorEngineConfiguration.cs b/Westwind.RazorHosting/Core/RazorEngineConfiguration.cs index 29988c2..4260a44 100644 --- a/Westwind.RazorHosting/Core/RazorEngineConfiguration.cs +++ b/Westwind.RazorHosting/Core/RazorEngineConfiguration.cs @@ -34,6 +34,7 @@ using System; using System.Text; using System.IO; +using System.CodeDom.Compiler; namespace Westwind.RazorHosting { @@ -88,8 +89,10 @@ public int StreamBufferSize } private int _StreamBufferSize = 2048; - - + /// + /// Specifies %Temp% folder for compiling files + /// + public TempFileCollection TempFiles { get; set; } } }