Skip to content

Release v3.26.2.0

Compare
Choose a tag to compare
@oleg-shilo oleg-shilo released this 30 Jun 03:41
· 712 commits to master since this release

Use choco install cs-script to deploy the release (instructions on how to use/enable choco). Note: it may take some time before the release will appear on Chocolatey.
If you prefer manual install then avoid using WinZip or WinRar as they lead to locking the downloaded content. Use 7zip instead.

Extension Pack contains some additional content representing somewhat less mainstream functionality and experimental features. For installing it extract cs-script.ExtensionPack.7z archive to your install location (e.g. C:\ProgramData\chocolatey\lib\cs-script\tools\cs-script).


The most notable features of this release are the significant usability improvements particularly for supporting C# 7 on Mono/Linux. As well as the features triggered by VSCode integration.

  • Linux support

    • Added "/debug:pdbonly" workaround to allow generation of debug symbols on Linux+Mono. Needed as Mono "/debug+" is broken on Linux.
    • Added resolving GAC assemblies from namespaces Mono/Linux
    • Added on-fly conversion of *.pdb to *.mdb under Mono
    • Patched Microsoft.CodeDom.Providers.DotNetCompilerPlatform to allow using Roslyn on Linux. This work around allows custom compiler (csc.exe) path and handles Mono problem when interfacing Roslyn (C#7). This is a work around for https://bugzilla.xamarin.com/show_bug.cgi?id=57130
    • Moved lock objects (*.lock files) on Linux away (to cache) from the actual folders where the files to be locked are. Just to stop pouting the file system
  • Deployment

    • Default CS-Script code provider renamed to CSSRoslynProvider.dll.
    • Default code provider CSSRoslynProvider.dll embeds patched Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll to allow simplified low footprint deployment.
    • Added auto-loading CSSRoslynProvider.dll if found in the script engine folder.
    • Added resolving code provider when it is specified by file name without extension
  • C# 7 and general improvements

    • dbg.print extended with direct support for IDictionary.
    • Added alias to the '-provider' switch: '-pvdr'
    • Added fully named equivalent of '-s' switch: '-sample'
    • Added C# 7 specific sample with '-s:7' switch
    • Added '-tc' switch for tracing the actual compiler input for CSSRoslynProvider.dll
    • Script engine assembly (e.g. cscs.exe) has been exposed to the precompiler routines.
    • Added ScriptParser.ProcessImportedScript to be used from precompilers.
  • VSCode integration features

    • Added -stop CLI switch to stop Roslyn server if any active.
    • Added option to inject breakpoint into autoclass decoration with -ac:* switch.
    • Added Settings.RoslynDir.
    • Added 'dbg' methods extensions.
    • Added option to include injected dbg.cs file into script project printout
  • Assorted defect fixes

    • Issue #73: In 3.26.0.0 running default install gives error about alternative compiler
    • Issue #71: Issue with multiple indirect relative paths
    • Issue #70: Minor issue related to platform dependent line breaks, e.g. in error messages
    • Issue #69: Basic types not available to precompilers on linux
    • Issue #68: Add option to take Main from primary script file
    • Issue #67: Same script, multiple concurrent instances, on Linux (again)