diff --git a/Libraries/Westwind.RazorHosting.dll b/Libraries/Westwind.RazorHosting.dll
index 0a54f78..ba8c8d2 100644
Binary files a/Libraries/Westwind.RazorHosting.dll and b/Libraries/Westwind.RazorHosting.dll differ
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; }
}
}