0

ランタイム プロセス用の C# 動的コードを使用してきました。私の問題は、取得せずにデータセット オブジェクトを動的コードに渡すことができないように見えることです。

「ファイルまたはアセンブリ 'file:///C:\Users\mgallanx\AppData\Local\Temp\npbylo5z.dll' またはその依存関係の 1 つを読み込めませんでした。指定されたファイルが見つかりません。」

私が使用している最も単純なデータセット処理文字列は次のとおりです。

mycodestring = "using System; 
    using System.Data; 
    namespace DaCodeNS 
     { 
       public static class DaCode 
        { 
          public static DataSet DaMethod( Dataset dsIn) 
          { 
            return dsIn; 
          }
        }
      }"

呼び出し元のメソッドは、System.dllとを追加するパラメータを設定し、 のto 1 要素をSystem.Data.dll作成します。Object[] mpsIn

呼び出しは次のとおりです。

CompilerResults results = provider.CompileAssemblyFromSource (parameters, mycodestring);
var cls = results.CompiledAssembly.GetType ("DaCodeNS.DaCode");
var method = cls.GetMethod ("DaMethod", BindingFlags.Static | BindingFlags.Public);
return (DataSet)  method.Invoke (null, mp);

ラインで切れGetMethodます。再生するために整数を渡す同様のコードを取得できますが、リターンと渡されたものを変更するとDataSet爆発します。どんな助けでも大歓迎です。

4

1 に答える 1

0

動的コードをコンパイル/実行するために必要なすべての参照が含まれているとは限りません。必要な参照をすべて見つける簡単な方法は、コンパイルするコードだけを含むスタンドアロン プロジェクトを作成することです。次に、プロジェクトに追加してコンパイル/実行するために必要な参照を確認します。

于 2015-08-25T23:58:36.743 に答える