6

私はここで見つけることができる例をやっています。だから私はC#スクリプトでIronPythonを実行しようとしています:

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");
                …

そして、ここからこのエラーが発生します:「ダイナミックオペレーションは「Microsoft.CSharp.dll」アセンブリ参照なしではコンパイルできません。」そして、私はそれが何であるかを真剣に理解していません、私は何を追加するのを忘れましたか?

私の参考文献には次のようなものがあります。 私のプロジェクトの参照

あなたの助けのためのThx。

追伸:私はMonoDevelopを使用しています。

4

3 に答える 3

12

これが私を助けたものです。Xamarian Studio v5.8.1(ビルド8)を使用してC#プログラムを作成しています。[参照]->[参照の編集]->検索バーに「Microsoft」と入力し始めました->[Microsoft.CSharp]の横のチェックボックスをオンにして[OK]をクリックしました。

その後、プログラムを保存して実行しました。すべてが期待どおりに機能します。

于 2015-03-30T01:08:02.647 に答える
4

Ok。基本的に、私の間違いは、IronPythonアセンブリを間違ったプラットフォームから追加したという事実に関連していました。それを確認する:

  • ターゲットフレームワーク:4.0

  • IronPythonが提供するすべてのアセンブリを[IronPython-2.7.3]->[Platforms]->[Net40]に追加します。

アドバイスをくれた皆さんに感謝します。

追伸:もちろん、別の問題があります…しかし、それはもうそのトピックについてではありません。

于 2012-07-10T22:09:17.513 に答える
2

Microsoft.CSharp.dllC#コンパイラの動的な部分が含まれています。コードで使用するときはいつでもdynamic、それへの参照が必要です。私はMonoDevelopに精通していませんが、ターゲットフレームワークを4.0に設定Microsoft.CSharp.dllし、プロジェクトへの参照を追加する必要があります(おそらく、プロジェクトを右クリックし、[参照の追加]をクリックして、Microsoft.CSharpを見つけます)。

私の推測では、使用しているプロジェクトはプレリリースバージョンのVSで作成されており、適切な参照がありません。

于 2012-07-10T19:54:33.353 に答える