Partage
  • Partager sur Facebook
  • Partager sur Twitter

Méthode non trouvée, pourtant bien présente !

VBCodeProvider Framework version 2.0

    27 juin 2011 à 18:39:11

    Bonjour,

    Dans un programme, je déclare un VBCodeProvider comme cela :
    Dim myVBCodeProviderOptions As New Dictionary(Of String, String)
    myVBCodeProviderOptions.Add("CompilerVersion", "v2.0")
    
    Dim myVBCodeProvider As New VBCodeProvider(myVBCodeProviderOptions)
    

    Il n'y a pas d'erreur ni au moment du codage ni au moment de la compilation et ça fonctionne bien sur mon ordinateur.
    Par contre, quand j'essaie sur un Windows XP avec le .NET Framework 2.0 j'ai cette erreur lorsque cette partie du code s'exécute :

    Cela ne semble pas fonctionner sur le .NET Framework 2.0.

    Citation : Microsoft .NET Framework

    System.MissingMethodException: Method not found: 'Void Microsoft.VisualBasic.VBCodeProvider..ctor(System.Collections.Generic.IDictionary`2<System.String,System.String>)'.


    J'ai essayé sur des ordinateurs ayant les versions 3.5 et 4.0, ça fonctionne parfaitement.
    Sauf que selon la MSDN, VBCodeProvider est bien présent dès la version 2.0 du Framework .NET.


    Oui, je compile bien en version 2.0.


    Quelqu'un a une idée ?


    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      27 juin 2011 à 18:59:16

      C'est le constructeur que tu utilises qui n'existe pas en .NET 2, pas la classe en elle même.
      Ce constructeur a été introduit en 3.5
      • Partager sur Facebook
      • Partager sur Twitter
        27 juin 2011 à 19:03:56

        Pourtant dans l'Explorateur d'objets de Visual Studio, on trouve bien :
        Image utilisateur

        Le constructeur (et même surchargé) semble bien exister.
        • Partager sur Facebook
        • Partager sur Twitter
          27 juin 2011 à 19:08:50

          Tu le voit probablement car tu as le framewaork 3.5 d'installer, mais sur la MSDN, la liste des constructeur est comme le dit Spaz, constructeur vide seulement.
          • Partager sur Facebook
          • Partager sur Twitter
            27 juin 2011 à 19:15:33

            La MSDN n'indique pas le constructeur avant la 3.5, mais indique par contre qu'il faut .NET 2.0 SP1.
            • Partager sur Facebook
            • Partager sur Twitter
              27 juin 2011 à 19:19:28

              En effet, avec le constructeur vide ça fonctionne.
              Ça doit être une erreur de l'Explorateur d'objets, qui indique bien [2.0.0.0] :-° .


              Du coup, comment faire pour spécifier que je veux compiler en 2.0 (si des versions supérieurs sont installés) ? Ou peut-être que le programme va compiler automatiquement en 2.0 puisqu'il est lui-même compilé en 2.0 ?

              • Partager sur Facebook
              • Partager sur Twitter
                27 juin 2011 à 19:31:11

                Je pense que tu dois plutôt utilisé la fonction statique CreateProvider(string, IDictionary<string,string>) si tu veux "remplacer" ton constructeur et spécifié la version.
                J'ai rien dit, l'explorateur d'objet affiche la dernière version des types hérités -_-

                Edit: quoi que, il me l'affiche en 2.0, mais pas sur la msdn o_O
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  27 juin 2011 à 19:45:43

                  T'as plutôt intérêt à compiler pour .NET 4 Client Profile, il est plus petit que le 2.0 (qui de toute façon n'est pas inclus avec XP) ;)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Méthode non trouvée, pourtant bien présente !

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown