C# dynamische Kompilierung und "Microsoft.CSharp.dll" Fehler
Mache ich das Beispiel gefunden werden kann,hier.
So versuche ich zu laufen, IronPython in einem 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");
…
... Und von hier habe ich diesen Fehler:
"Im dynamischen Betrieb nicht kompiliert werden kann, ohne "Microsoft.CSharp.dll" assembly reference".
Und ich ernsthaft nicht verstehen, was das ist, was ich vergessen habe hinzufügen?
In meine Referenzen, die ich habe:
Thx für deine Hilfe.
Ps: ich bin auf MonoDevelop.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, was mir geholfen hat. Ich bin mit Xamarian Studio v5.8.1 (build 8) schreiben Sie ein C# - Programm. Ich musste einfach einen Rechtsklick auf "Verweise" -> "Bearbeiten " Referenzen" -> begann die Eingabe von "Microsoft" in der Suchleiste -> Häkchen in der box neben "Microsoft.CSharp" -> und "OK" geklickt haben.
Ich gerade gespeichert, und das Programm ausgeführt, dass nach - alles wie erwartet funktioniert!
Ok. Im Grunde, mein Fehler war verbunden mit der Tatsache, dass ich meine IronPython-Baugruppen aus der falschen Plattform.
Stellen Sie sicher, dass:
Ziel-Framework: 4.0
Fügen Sie alle Baugruppen zur Verfügung gestellt von IronPython in [IronPython-2.7.3]->[Plattformen]->[Net40].
Thx an alle, die mir Ratschläge.
Ps:Nun, natürlich, es ist ein anderes problem... Aber es geht nicht darum, dass Thema mehr.
Net35
- Verzeichnis. Bewusst sein, diePath
im Referenzen-Dialog. Wenn ich Sie ausIronPython 2.7\Platforms\Net40
der build erfolgreich war, und beide Arten von Versammlungen, die jetzt erscheinen auf der .Net Registerkarte Verweise Hinzufügen. (Dies möglicherweise der Fall gewesen, bevor ich auch nur nicht bemerkt).Microsoft.CSharp.dll
enthält der dynamische Teil der C# - compiler. Jedes mal, wenn Siedynamic
in Ihrem code, müssen Sie einen Verweis darauf. Ich bin nicht vertraut mit MonoDevelop, aber Sie werden wahrscheinlich haben, um die Ziel-framework 4.0, und fügen Sie einen Verweis aufMicrosoft.CSharp.dll
für das Projekt (wahrscheinlich mit der rechten Maustaste auf das Projekt, "Add Reference", findet Microsoft.CSharp).Meine Vermutung ist, dass das Projekt, die Sie verwenden wurde mit einer pre-release-version von VS, und fehlen die richtigen references.