Robię przykład, który można znaleźć here. Więc próbuję uruchomić IronPython w skrypcie C#:Kompilacja dynamiczna C# i błąd "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");
…
I stąd mam ten błąd: „Dynamic Operacja nie może być skompilowane bez odwołania do zestawu "Microsoft.CSharp.dll". " I naprawdę nie rozumiem, o co chodzi, co zapomniałem dodać?
W moich odniesień mam:
thx za pomoc.
Ps: Jestem na MonoDevelop.
Upewnij się, że oznaczasz własną odpowiedź jako rozwiązanie, aby przyszli użytkownicy mogli zobaczyć, jak rozwiązałeś problem! Również cieszę się, że znalazłeś i wybrałeś mój przykład :) – Urda
To też był mój problem. Dodałem moje referencje za pomocą karty ".NET" w Visual Studio C# 2010 Express. Myślę, że oryginalne pliki, które się pojawiły, mogły pochodzić tylko z katalogu 'Net35'. Zwróć uwagę na 'Path' w oknie dialogowym Add References. Kiedy dodałem je z 'IronPython 2.7 \ Platforms \ Net40', kompilacja się powiodła i oba zestawy złożeń są teraz wyświetlane na karcie .Net w Dodaj odniesienia. (Mogło tak być również wcześniej, po prostu nie zauważyłem). – cod3monk3y