diff --git a/Source/Build/CSScriptLibrary.dll b/Source/Build/CSScriptLibrary.dll
index 41d83248..00a5f7f2 100644
Binary files a/Source/Build/CSScriptLibrary.dll and b/Source/Build/CSScriptLibrary.dll differ
diff --git a/Source/Build/CSScriptLibrary.v3.5.dll b/Source/Build/CSScriptLibrary.v3.5.dll
index 256d4861..13f8ec24 100644
Binary files a/Source/Build/CSScriptLibrary.v3.5.dll and b/Source/Build/CSScriptLibrary.v3.5.dll differ
diff --git a/Source/Build/cscs.exe b/Source/Build/cscs.exe
index 70b6014a..f7e3c0fb 100644
Binary files a/Source/Build/cscs.exe and b/Source/Build/cscs.exe differ
diff --git a/Source/CSSCodeProvider.v.2.0/AssemblyInfo.cs b/Source/CSSCodeProvider.v.2.0/AssemblyInfo.cs
index 1a4aa9b7..8cb8a8d3 100644
--- a/Source/CSSCodeProvider.v.2.0/AssemblyInfo.cs
+++ b/Source/CSSCodeProvider.v.2.0/AssemblyInfo.cs
@@ -53,4 +53,4 @@
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]
-[assembly: AssemblyVersion("3.25.0.0")]
\ No newline at end of file
+[assembly: AssemblyVersion("3.25.1.0")]
\ No newline at end of file
diff --git a/Source/CSSCodeProvider.v3.5/AssemblyInfo.cs b/Source/CSSCodeProvider.v3.5/AssemblyInfo.cs
index ebcd30b7..b4f95189 100644
--- a/Source/CSSCodeProvider.v3.5/AssemblyInfo.cs
+++ b/Source/CSSCodeProvider.v3.5/AssemblyInfo.cs
@@ -29,4 +29,4 @@
// Build Number
// Revision
//
-[assembly: AssemblyVersion("3.25.0.0")]
+[assembly: AssemblyVersion("3.25.1.0")]
diff --git a/Source/CSSCodeProvider/AssemblyInfo.cs b/Source/CSSCodeProvider/AssemblyInfo.cs
index a3e20dd6..e7518e03 100644
--- a/Source/CSSCodeProvider/AssemblyInfo.cs
+++ b/Source/CSSCodeProvider/AssemblyInfo.cs
@@ -55,4 +55,4 @@
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]
-[assembly: AssemblyVersion("3.25.0.0")]
+[assembly: AssemblyVersion("3.25.1.0")]
diff --git a/Source/CSScriptLibrary/CSScriptLib.cs b/Source/CSScriptLibrary/CSScriptLib.cs
index 3fe1fae8..12880030 100644
--- a/Source/CSScriptLibrary/CSScriptLib.cs
+++ b/Source/CSScriptLibrary/CSScriptLib.cs
@@ -58,6 +58,9 @@
namespace CSScriptLibrary
{
+ ///
+ /// Enum for controlling concurrency in script hosting scenarios
+ ///
public enum HostingConcurrencyControl
{
///
@@ -1127,11 +1130,10 @@ static public Mutex CreateCompilerLock(string compiledScriptFile, bool optimisti
/// Creates the compiler lock object (). The Mutex object is now initially owned.
/// This object is to be used for the access synchronization to the compiled script file and it can be useful for the
/// tasks like cache purging or explicit script recompilation.
- /// The concurrency/lock scope is controlled by .
+ /// The concurrency/lock scope is controlled by .
/// And it is to be used to control the concurrency scope.
///
/// The script file.
- /// Otherwise the operation is thread-safe system wide.
///
static public Mutex CreateCompilerLock(string compiledScriptFile)
{
@@ -1148,11 +1150,31 @@ static public Mutex CreateCompilerLock(string compiledScriptFile)
/// The string array containing file names to the additional assemblies referenced by the script.
/// Compiled assembly file name.
static public string CompileWithConfig(string scriptFile, string assemblyFile, bool debugBuild, Settings scriptSettings, string compilerOptions, params string[] refAssemblies)
+ {
+ CompilingInfo compilingInfo;
+ return CompileWithConfig(scriptFile, assemblyFile, debugBuild, scriptSettings, compilerOptions, out compilingInfo, refAssemblies);
+ }
+
+ ///
+ /// Compiles script file into assembly with CSExecutor. Uses script engine settings object and compiler specific options.
+ ///
+ /// The path to the script file to be compiled.
+ /// The path of the compiled assembly to be created. If set to null a temporary file name will be used.
+ /// 'true' if debug information should be included in assembly; otherwise, 'false'.
+ /// The script engine Settings object.
+ /// The string value to be passed directly to the language compiler.
+ /// The compiling information. Populated with the compilation context.
+ /// The string array containing file names to the additional assemblies referenced by the script.
+ ///
+ /// Compiled assembly file name.
+ ///
+ static public string CompileWithConfig(string scriptFile, string assemblyFile, bool debugBuild, Settings scriptSettings, string compilerOptions, out CompilingInfo compilingInfo, params string[] refAssemblies)
{
lock (typeof(CSScript))
{
- using (Mutex fileLock = new Mutex(false, GetCompilerLockName(assemblyFile??scriptFile)))
+ using (Mutex fileLock = new Mutex(false, GetCompilerLockName(assemblyFile ?? scriptFile)))
{
+ compilingInfo = null;
ExecuteOptions oldOptions = CSExecutor.options;
try
{
@@ -1203,7 +1225,7 @@ static public string CompileWithConfig(string scriptFile, string assemblyFile, b
}
finally
{
- LastCompilingResult = exec.LastCompileResult;
+ compilingInfo = LastCompilingResult = exec.LastCompileResult;
if (KeepCompilingHistory)
CompilingHistory.Add(new FileInfo(scriptFile), exec.LastCompileResult);
}
diff --git a/Source/CSScriptLibrary/Evaluator.Extensions.Remote.cs b/Source/CSScriptLibrary/Evaluator.Extensions.Remote.cs
index becff1e8..eb73e709 100644
--- a/Source/CSScriptLibrary/Evaluator.Extensions.Remote.cs
+++ b/Source/CSScriptLibrary/Evaluator.Extensions.Remote.cs
@@ -29,9 +29,8 @@ public interface IRemoteAgent
public static class AttachedProperies
{
#pragma warning disable 1591 // Missing XML comment for publicly visible type or member
-#pragma warning restore 1591 // Missing XML comment for publicly visible type or member
-
public static ConditionalWeakTable