Page 1 of 2
X# Scripting question
Posted: Wed May 31, 2017 6:28 am
by wriedmann
Hello,
First: let me say that is impressive what the script compiler can do!
I have a few question about the new scripting support in X#:
- can we distribute the script compiler with our applications? Or move it even to other systems? What is the license of the script compiler?
- is it possible to embed the script compiler in our applications? This could be important because then scripts can be executed in the context of our program, using all classes and methods defined there.
- is there any documentation available?
Thank you very much!
Wolfgang
X# Scripting question
Posted: Wed May 31, 2017 10:37 am
by robert
Wolfgang,
Valid questions.
1) Look at the "c:Program Files (x86)XSharpRedistRedist.txt"
It states that you can distribute the files
- Xsi.exe
- XSharp.Scripting.dll
- XSharp.CodeAnalysis.dll
and the support files (which are from Microsoft)
2) You can embed the scripting in your apps. The XIDE folder in the Scripting Examples folder shows many examples on how to do that
3) At this moment the docs are limited. Look at
https://www.xsharp.eu/help/x-scripting.html for the text from the slides of the session that Nikos did in Cologne.
You can also look at the C# Roslyn scripting API examples on
https://github.com/dotnet/roslyn/wiki/Scripting-API-Samples.
Our scripting is based on the same api. The only difference are the namespaces.
Where the C# examples require
Code: Select all
using Microsoft.CodeAnalysis.CSharp.Scripting
using Microsoft.CodeAnalysis.Scripting
we require
Code: Select all
USING LanguageService.CodeAnalysis.Scripting
USING LanguageService.CodeAnalysis.XSharp.Scripting
Robert
X# Scripting question
Posted: Wed May 31, 2017 11:56 am
by wriedmann
Hi Robert,
thank you for pointing me to the help page - I hadn't searched there.
What you have accomplished with scripting is really great - I see a lot of things I can do with it (I have worked a lot with VOScript in the past).
Wolfgang
X# Scripting question
Posted: Tue Jul 18, 2017 9:36 am
by wriedmann
Hi,
I'm trying to integrate scripting in my program. I need to evaluate simple expressions like
but I cannot even evaluate an expression like
This is my code:
Code: Select all
method Process( cScriptCode as string ) as string
local cReturn as string
local oReturn as object
cReturn := ""
oReturn := XSharpScript.EvaluateAsync( cScriptCode, ScriptOptions.Default, _oParameters )
cReturn := oReturn:ToString()
return cReturn
(of course in a try/catch block!)
But it gives me an exception
- ScriptException.png (4.62 KiB) Viewed 691 times
Can you give me an hint, please?
You can also find a viaef file of the application attached to this message.
Thank you very much!
Wolfgang
P.S. I need this in my Door Configurator and I would not add any dependency on Vulcan on this Core application
X# Scripting question
Posted: Tue Jul 18, 2017 12:51 pm
by FFF
Sorry, no hint, but a confirmation
Karl
X# Scripting question
Posted: Tue Jul 18, 2017 12:59 pm
by wriedmann
Hi Karl,
do you have played with this or only used my code?
I have now found an alternative tool:
https://ncalc.codeplex.com/releases/view/73656
And it seems to do what I need, had only to rebuild it for .NET 4.
- ncalc_sample.png (3.2 KiB) Viewed 692 times
Took me about 5 minutes to make it work.
Wolfgang
X# Scripting question
Posted: Tue Jul 18, 2017 1:02 pm
by wriedmann
Hi Karl,
if you like playing with it a bit: please find attached a working sample.
Wolfgang
X# Scripting question
Posted: Tue Jul 18, 2017 1:33 pm
by FFF
Played with your code, pure curiosity
Confirm, that the ncalc tool works. But would like to see, where the error in your first version comes from...
K.
X# Scripting question
Posted: Tue Jul 18, 2017 1:39 pm
by wriedmann
Hi Karl,
since I need a solution today, I'll go the NCalc route. But of course I would prefer the X# scripting engine...
Maybe I can replace NCalc later. It is interesting to see that it uses Antlr like the X# compiler and the Vulcan compiler.
Wolfgang
X# Scripting question
Posted: Tue Jul 18, 2017 1:53 pm
by Chris
Hi Wolfgang,
I saw the same problem with your app, checked what's different with the samples I have from Nikos' session in Cologne and found out that you need to include a .exe.config file like the attached one.
This will take care of the problem loading the .dll, but now I see some other runtime issues with the newest x# dlls, while it worked ok with a previous version. We'll look into this ASAP.
Chris