C# dynamic compilation and "Microsoft.CSharp.dll" error
Solution 1
Ok. Basically, my mistake was linked to the fact that I added my IronPython assemblies from the wrong platform. Verify that:
Target Framework: 4.0
Add all the assemblies provided by IronPython in [IronPython-2.7.3]->[Platforms]->[Net40].
Thx to everyone who gave me advices.
Ps:Now, of course, there is another problem… But it's not about that topic anymore.
Solution 2
This is what helped me. I am using Xamarian Studio v5.8.1 (build 8) to write a C# program. I just had to right click "References" -> "Edit References" -> started typing "Microsoft" in the search bar -> Checked the box next to "Microsoft.CSharp" -> and clicked "OK".
I just saved and ran the program after that - everything works as expected!
Solution 3
Microsoft.CSharp.dll
contains the dynamic portion of the C# compiler. Any time you use dynamic
in your code, you need a reference to it. I'm not familiar with MonoDevelop, but you'll probably have to set the target framework to 4.0, and add a reference to Microsoft.CSharp.dll
to the project (probably right-click on the project, 'Add Reference', find Microsoft.CSharp).
My guess is that the project you're using was created with a pre-release version of VS, and is missing the proper references.
ssx
Updated on June 18, 2022Comments
-
ssx about 2 years
I'm doing the example that can be found here. So I'm trying to run IronPython in a C# script:
Python:
def hello(name): print "Hello " + name + "! Welcome to IronPython!" return def add(x, y): print "%i + %i = %i" % (x, y, (x + y)) return def multiply(x, y): print "%i * %i = %i" % (x, y, (x * y)) return
C#:
using IronPython.Hosting; using IronPython.Runtime; using Microsoft.Scripting.Hosting; using System; namespace IntroIronPython { class IronPythonMain { static void Main(string[] args) { // Create a new ScriptRuntime for IronPython Console.WriteLine("Loading IronPython Runtime..."); ScriptRuntime python = Python.CreateRuntime(); try { // Attempt to load the python file Console.WriteLine("Loading Python File..."); // Create a Dynamic Type for our Python File dynamic pyfile = python.UseFile("PythonFunctions.py"); Console.WriteLine("Python File Loaded!"); Console.WriteLine("Running Python Commands...\n"); // Call the hello(name) function pyfile.hello("Urda"); …
And from here I have this error: "Dynamic Operation cannot be compiled without "Microsoft.CSharp.dll" assembly reference." And I seriously don't understand what that is about, what did I forget to add?
In my references I have:
Thx for your help.
Ps: I'm on MonoDevelop.