One of our ScriptCS steps needs to make use of the “dynamic” type in C#. Everything works nicely under the current version of ScriptCS (0.16.1), however when we run the script under Octopus we get the following error:
ERROR: Script compilation failed: C:\Octopus\Work\20160614050259-2171\Script.csx(6,1): error CS8000: This language feature (‘dynamic’) is not yet implemented in Roslyn…
We’ve checked one of our tentacles and it looks like Octopus is using version 0.13.3 of ScriptCS.
Would it be possible to upgrade the ScriptCS version that Octopus is using to something more current? We’re currently running Octopus 3.3.16.
Thanks for getting in touch! This is something we picked up on a couple of weeks ago, Octopus indeed uses an older version of ScriptCS. Since then we have created a GitHub issues for the upgrade and been working on implementing it into Octopus version 3.4.
Here is the link to the GitHub issue where you can follow the progress. https://github.com/OctopusDeploy/Calamari/pull/103
There is however a manual process you can use to upgrade early if you require it.
This process involves building your own Calamari version with an updated ScriptCS in it, then deploying it to your Octopus server.
To do this, you will first need to fork the latest version of Calamari (as it is all open source) you can grab a copy from here: https://github.com/OctopusDeploy/Calamari
The next thing you would need to do is get the latest version of ScriptCS and update the Calamari ScriptCS libraries.
After you have a copy of Calamari with the latest ScriptCS libraries you can compile & deploy it to Octopus.
The only downside to this is that you will need to manually update Calamari yourself if we release an update between now and 3.4 (there shouldn’t be many)
Please let me know if this helps or if you run into any issues.