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> ObjectCache = new ConditionalWeakTable>(); +#pragma warning restore 1591 // Missing XML comment for publicly visible type or member /// /// Sets the named value to the object. diff --git a/Source/CSScriptLibrary/Properties/AssemblyInfo.cs b/Source/CSScriptLibrary/Properties/AssemblyInfo.cs index 1b033f83..a3083910 100644 --- a/Source/CSScriptLibrary/Properties/AssemblyInfo.cs +++ b/Source/CSScriptLibrary/Properties/AssemblyInfo.cs @@ -28,8 +28,8 @@ // Build Number // Revision // -[assembly: AssemblyVersion("3.25.0.0")] -[assembly: AssemblyFileVersion("3.25.0.0")] +[assembly: AssemblyVersion("3.25.1.0")] +[assembly: AssemblyFileVersion("3.25.1.0")] // // In order to sign your assembly you must specify a key to use. Refer to the diff --git a/Source/NAnt.CSScript/AssemblyInfo.cs b/Source/NAnt.CSScript/AssemblyInfo.cs index 542c921c..3ba7c7ce 100644 --- a/Source/NAnt.CSScript/AssemblyInfo.cs +++ b/Source/NAnt.CSScript/AssemblyInfo.cs @@ -29,5 +29,5 @@ // Build Number // Revision // -[assembly: AssemblyVersion("3.25.0.0")] -[assembly: AssemblyFileVersion("3.25.0.0")] +[assembly: AssemblyVersion("3.25.1.0")] +[assembly: AssemblyFileVersion("3.25.1.0")] diff --git a/Source/Settings.cs b/Source/Settings.cs index aefe09d0..8a336121 100644 --- a/Source/Settings.cs +++ b/Source/Settings.cs @@ -479,21 +479,13 @@ public bool ReportDetailedErrorInfo /// true if Optimistic Concurrency model otherwise, false. /// [Browsable(false)] - public bool OptimisticConcurrencyModel + internal bool OptimisticConcurrencyModel { get { return optimisticConcurrencyModel; } set { optimisticConcurrencyModel = value; } } bool optimisticConcurrencyModel = true; - - [Browsable(false)] - public bool ConcurrencyModel - { - get { return optimisticConcurrencyModel; } - set { optimisticConcurrencyModel = value; } - } - /// /// Gets or sets a value indicating whether auto-class decoration should allow C# 6 specific syntax. /// If it does the statement "using static dbg;" will be injected at the start of the auto-class definition thus the diff --git a/Source/cscscript/Properties/AssemblyInfo.cs b/Source/cscscript/Properties/AssemblyInfo.cs index 44ab6c2a..0edec438 100644 --- a/Source/cscscript/Properties/AssemblyInfo.cs +++ b/Source/cscscript/Properties/AssemblyInfo.cs @@ -36,5 +36,5 @@ // Build Number // Revision // -[assembly: AssemblyVersion("3.25.0.0")] -[assembly: AssemblyFileVersion("3.25.0.0")] \ No newline at end of file +[assembly: AssemblyVersion("3.25.1.0")] +[assembly: AssemblyFileVersion("3.25.1.0")] \ No newline at end of file diff --git a/Source/css_config/AssemblyInfo.cs b/Source/css_config/AssemblyInfo.cs index 47337616..ca2f13a8 100644 --- a/Source/css_config/AssemblyInfo.cs +++ b/Source/css_config/AssemblyInfo.cs @@ -29,5 +29,5 @@ // Build Number // Revision // -[assembly: AssemblyVersion("3.25.0.0")] -[assembly: AssemblyFileVersion("3.25.0.0")] +[assembly: AssemblyVersion("3.25.1.0")] +[assembly: AssemblyFileVersion("3.25.1.0")] diff --git a/Source/cswscript/Properties/AssemblyInfo.cs b/Source/cswscript/Properties/AssemblyInfo.cs index 5edba1a2..f0074a90 100644 --- a/Source/cswscript/Properties/AssemblyInfo.cs +++ b/Source/cswscript/Properties/AssemblyInfo.cs @@ -27,8 +27,8 @@ // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("3.25.0.0")] -[assembly: AssemblyFileVersion("3.25.0.0")] +[assembly: AssemblyVersion("3.25.1.0")] +[assembly: AssemblyFileVersion("3.25.1.0")] // // In order to sign your assembly you must specify a key to use. Refer to the // Microsoft .NET Framework documentation for more information on assembly signing.