2009-05-28 5 views
2

私は、IronPythonを埋め込むことでカスタマイズ可能なルールエンジンを使用するClick Once Smart Clientアプリの正当性をテストするためのテストアプリケーションを公開しようとしています。IronPython、一度クリック、.NET 2.0エラー - 考え?

これまでのところ、スクリプトエンジンを呼び出すときに私以外のすべてのユーザーがこのエラーを受けました(下記)。

IronPythonアセンブリとスクリプトアセンブリを強制的に展開するために特別な処理を行う必要がありますか?彼らは私のプロジェクトで参照されているので、私はそれが自動的になると思った。 これは.NET 2.0では実現できませんか?

思考?

 
************** Exception Text ************** 
System.MissingMethodException: Method not found: 'Void System.Reflection.Emit.DynamicMethod..ctor(System.String, System.Type, System.Type[], Boolean)'. 
    at Microsoft.Scripting.Utils.Helpers.CreateDynamicMethod(String name, Type returnType, Type[] parameterTypes) 
    at Microsoft.Linq.Expressions.Compiler.Snippets.CreateDynamicMethod(String name, Type returnType, Type[] parameterTypes) 
    at Microsoft.Linq.Expressions.Compiler.LambdaCompiler.CreateDynamicLambdaCompiler(CompilerScope scope, String methodName, Type returnType, IList`1 paramTypes, IList`1 paramNames, Boolean closure, Boolean emitDebugSymbols, Boolean forceDynamic) 
    at Microsoft.Linq.Expressions.Compiler.LambdaCompiler.CompileLambda(LambdaExpression lambda, Type delegateType, Boolean emitDebugSymbols, Boolean forceDynamic, MethodInfo& method) 
    at Microsoft.Linq.Expressions.Compiler.LambdaCompiler.CompileLambda[T](LambdaExpression lambda, Boolean emitDebugSymbols) 
    at Microsoft.Linq.Expressions.LambdaExpression.Compile[T](Boolean emitDebugSymbols) 
    at Microsoft.Scripting.Runtime.OptimizedScriptCode.InvokeTarget(LambdaExpression code, Scope scope) 
    at Microsoft.Scripting.SourceUnit.Execute(Scope scope, ErrorSink errorSink) 
    at Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope scope) 
    at UAP.UI.Form1.button1_Click(Object sender, EventArgs e) 
    at System.Windows.Forms.Control.OnClick(EventArgs e) 
    at System.Windows.Forms.Button.OnClick(EventArgs e) 
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 
    at System.Windows.Forms.Control.WndProc(Message& m) 
    at System.Windows.Forms.ButtonBase.WndProc(Message& m) 
    at System.Windows.Forms.Button.WndProc(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 

答えて

0

あなたは右のプロジェクトをクリックして、Propertiesに行く場合は、前提条件は、アプリケーションのインストールを指定することができますPublishタブを、theresの。

おそらくIronPythonのインストール実行ファイルへのパスを指定できます。

+0

しかし、私はそれを正しくインストールする必要はありませんか?必要な3つのアセンブリをプッシュダウンするだけですか? IronPython.dll、Microsoft.Scripting.dll、Microsoft.Scripting.Code.dll - しかし、これらの3つのアセンブリが正しく動作するために3.0または3.5が必要かどうかはどうすればわかりますか? – BuddyJoe

+0

また、Microsoft.Scripting.ExtensionAttribute.dllが必要です。おそらくIronPython.Modules.dllが必要です。あなたは絶対にインストールする必要はなく、.NET 30または3.5は必要ありませんが、.NET 2.0のSP1が必要です。 (3.5をインストールしている場合は、自動的に2.0 SP1がインストールされます) –

4

IronPythonリクエスタ.NET 2.0SP1以降を実行する。この例外は、SP1で追加されたオーバーロードのために発生しています。