2009-05-28 5 views
2

Je suis en train d'essayer de déployer une application de test pour tester la faisabilité de redresser une application Click Once Smart Client qui utilise également un moteur de règles personnalisable en intégrant IronPython.IronPython, cliquez une fois, Erreur .NET 2.0 - pensées?

Jusqu'ici, tous les utilisateurs sauf moi ont cette erreur (ci-dessous) lorsqu'ils invoquent le moteur de script. Ai-je besoin de faire quelque chose de spécial pour forcer le déploiement des assemblys IronPython et Scripting? Je pensais que ce serait automatique parce qu'ils ont été référencés dans mon projet. Est-ce que ce n'est pas faisable dans .NET 2.0?

Pensées?

 
************** 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) 

Répondre

0

Si vous faites un clic droit de votre projet et allez à Properties Theres onglet Publish, qui vous permet de spécifier préalable installe pour votre application.

Vous pouvez probablement fournir un chemin d'accès à l'exécutable d'installation IronPython ici.

+0

Mais je ne devrais pas avoir à l'installer correctement? Poussez simplement les 3 assemblages nécessaires à droite? IronPython.dll, Microsoft.Scripting.dll, Microsoft.Scripting.Code.dll - Mais comment puis-je savoir si ces 3 assemblages ont besoin de 3.0 ou 3.5 pour fonctionner correctement? – BuddyJoe

+0

Vous avez également besoin de Microsoft.Scripting.ExtensionAttribute.dll et vous voulez probablement IronPython.Modules.dll. Vous n'avez absolument pas besoin d'installer et vous n'avez pas besoin de .NET 30 ou 3.5, mais vous avez besoin de SP1 de .NET 2.0. (Si vous avez installé 3.5, vous avez automatiquement 2.0 SP1.) –

4

IronPython requiers .NET 2.0SP1 ou version ultérieure à exécuter. Cette exception se produit en raison d'une surcharge ajoutée dans SP1.