Sto facendo l'esempio che può essere trovato here. Così sto cercando di eseguire IronPython in uno script C#:Compilazione dinamica C# e errore "Microsoft.CSharp.dll"
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");
…
E da qui ho questo errore: "Operazione dinamico non può essere compilato senza riferimento all'assembly "Microsoft.CSharp.dll". " E seriamente non capisco di cosa si tratta, cosa ho dimenticato di aggiungere?
Nei miei riferimenti che ho:
Thx per il vostro aiuto.
Ps: Sono su MonoDevelop.
Assicurati di contrassegnare la tua risposta come soluzione in modo che i futuri visitatori possano vedere che hai risolto il problema! Inoltre sono contento che tu abbia trovato e scelto di usare il mio esempio :) – Urda
Questo era il mio problema. Ho aggiunto i miei riferimenti utilizzando la scheda ".NET" in Visual Studio C# 2010 Express. Penso che i file originali che sono apparsi potrebbero essere stati solo dalla directory 'Net35'. Sii consapevole del 'Percorso' nella finestra di dialogo Aggiungi riferimenti. Quando li ho aggiunti da "IronPython 2.7 \ Platforms \ Net40' la generazione è riuscita, ed entrambi i gruppi di assiemi ora appaiono nella scheda .Net in Aggiungi riferimenti. (Anche questo potrebbe essere stato il caso prima, non me ne sono accorto). – cod3monk3y