none
[REGLE] Ajax et version de .Net : un peu l'air bête ... RRS feed

  • Question

  • Bonjour tout le monde,

    J'ai attaqué l'étude d'Ajax avec ceci : http://msdn.microsoft.com/fr-fr/asp.net/bb758858.aspx

    Les deux premiers ateliers se sont bien passés même si j'ai un peu tâtonné au début. J'avais bien les contrôles Ajax dans l'onglet qui va bien de la boîte à outils.

    Quand j'ai voulu rouvrir le projet pour attaquer le troisième atelier, on m'a dit "Erreur 39 Impossible de charger le fichier ou l'assembly 'AjaxControlToolkit' ou une de ses dépendances. Cet assembly a été construit par un runtime plus récent que le runtime actuellement chargé et ne peut pas être chargé. "

    Bien sûr, l'onglet AjaxControlToolkit de la boîte à outils a disparu.

    J'ai pu faire une fausse manœuvre, je me suis rendu compte que j'ai créé un fichier solution dans un répertoire, qui renvoie au répertoire du site qui se trouve ailleurs, c'est vrai qu'il y a plus orthodoxe comme gestion des répertoires. Mais ça ne devrait pas m'empêcher de retrouver mes petits ...

    Je n'ai qu'une version de ajaxcontroltoolkit.dll, donc si elle était bonne tout-à-l'heure elle doit l'être encore. Elle est basée sur .Net 4.

    Sur la machine, sont présentes les versions 1.1, 2, 3.0, 3.5 et 4.0 de .Net.

    J'ai remplacé le web.config par celui de la solution et recompilé, aucun changement.

    J'ai vidé la section assemblies et recompilé, aucun changement.

    Bon alors si le web.config n'est pas impliqué, je me demande où on charge une version de .Net pour qu'elle soit incompatible avec ce qu'on a à charger sur le site ?

    Ah, euh, au début j'ai cru que j'avais affaire à un autre exemplaire du projet, alors j'ai inséré la référence à ajaxcontroltoolkit par clic droit et ajout de référence, ce qui a inséré toutes les ressources pour les différentes cultures, alors qu'avant je n'avais inséré que le fichier lui-même, par glissé de souris depuis une fenêtre de l'explorateur Windows. J'ai cru que c'était ça la bêtise, j'ai tout retiré et réinséré le fichier comme j'avais fait avant. Hum, pas probant.

    Rester sur cette fichue bécane pour quelque chose qui a fonctionné impec du premier coup, c'est rageant. Au moins, il pleuvrait, encore ...

    (tiens, il n'y avait pas un forum Ajax ? Ah c'était sur le site aspnet ...)

     

    • Modifié Gloops lundi 18 juillet 2011 20:36
    jeudi 14 juillet 2011 16:53

Réponses

  • Alors quelques éléments supplémentaires.

    Le system.web version 2 est installé dans le GAC, ça peut être une raison pour laquelle il faut prendre son élan pour charger la version 4.

    L'AjaxControlsToolkit n'est pas dans le GAC. Le chemin de mise à jour était un peu bizarre, il commençait par Documents and Settings\Program Files (il a dû être pondu par quelqu'un près du radiateur, c'est une génération automatique). Il est conseillé de l'installer dans le Program Files\Microsoft ASP .Net 2.0 ... mais je me demande si il faut le faire à la main.

    Le problème s'est à nouveau posé, je me suis donc retrouvé avec deux projets au lieu d'un avec le même problème (pas d'onglet AjaxControlsToolkit dans la boîte à outils), en fait il suffisait de fermer Visual Studio et de le rouvrir pour que ça coince.

    Sur le site de téléchargement de Microsoft on trouve une version d'AjaxControlsTookit.dll compatible avec .Net 2. L'onglet que j'ai créé avec les contrôles de la version 4 ne réapparaît pas bien entendu, mais je peux en créer un avec les contrôles de la version 2. J'ai essayé avec ça, j'ai pu rouvrir une fois Visual Studio, ce qui est encourageant.

    Maintenant, ce que j'espère, c'est que ça dure. Allez, on se donne quelques jours pour dire que ça marche cette fois.

     

    • Marqué comme réponse Gloops lundi 18 juillet 2011 20:39
    vendredi 15 juillet 2011 08:17

Toutes les réponses

  • Même si tu as tout les frameworks d'installer, il faut quand même spécifié quel framework que tu veux utiliser dans ton projet. Ouvre les propriétés du projet et tu vas voir lequel est présentement défini. Donc si Version .Net de ton projet < Version DLL AjaxControlToolkit, tu vas avoir un erreur.


    Microsoft MVP C# || gabrielmongeon.com || LinkedIn
    jeudi 14 juillet 2011 19:06
    Modérateur
  • Bon, alors donc, je passe par Site web / Démarrage, et je vais à l'onglet Références. Est-ce qu'il ne s'agit pas d'une autre interface pour présenter les références qui sont citées dans le web.config ? Ah, bonne occasion de me rendre compte que non. Celles qui font la différence ... elles sont déclarées où ? machine.config ?
    Bon alors très bien, tout-à-l'heure pour pouvoir continuer en attendant une réponse j'ai renommé mon projet, et j'ai chargé la solution à la place. Comme ça, je vais pouvoir comparer. J'ai vérifié que la solution fournie sur le site fonctionnait (après avoir touillé un peu, du style glissé de souris de ajaxtoolkit.dll vers la solution, sans grande conviction sur une justification théorique de la manœuvre). Alors il faut regarder quoi ? System.web ?
    Dans les deux cas j'ai 2.0.0.0 en provenance du GAC. Et j'ai bien une application qui reconnaît l'AjaxToolKit, et l'autre pas. D'ailleurs, du côté où la génération échoue, il n'y a plus qu'une autre référence : XmlMembershipServices.Service, mais celle-ci, si je ne m'abuse, a sa source dans le projet. D'ailleurs ça m'a agacé, j'ai tapé Générer / Regénérer la solution, histoire d'en avoir le cœur net, mais c'est pareil.
    Un truc qui ne fait pas vraiment net d'ailleurs, c'est la barre d'état qui commence par dire "Prêt", avant que la fenêtre des erreurs signale qu'en fait rien n'est prêt du tout. Enfin bon ça, on ne va pas le refaire ce soir :)
    Bon, eh ben ... Pour le moment, je vais continuer à tricher :) ça serait quand même sympathique, de pouvoir comprendre ce qui se passe.
    jeudi 14 juillet 2011 19:52
  • Alors quelques éléments supplémentaires.

    Le system.web version 2 est installé dans le GAC, ça peut être une raison pour laquelle il faut prendre son élan pour charger la version 4.

    L'AjaxControlsToolkit n'est pas dans le GAC. Le chemin de mise à jour était un peu bizarre, il commençait par Documents and Settings\Program Files (il a dû être pondu par quelqu'un près du radiateur, c'est une génération automatique). Il est conseillé de l'installer dans le Program Files\Microsoft ASP .Net 2.0 ... mais je me demande si il faut le faire à la main.

    Le problème s'est à nouveau posé, je me suis donc retrouvé avec deux projets au lieu d'un avec le même problème (pas d'onglet AjaxControlsToolkit dans la boîte à outils), en fait il suffisait de fermer Visual Studio et de le rouvrir pour que ça coince.

    Sur le site de téléchargement de Microsoft on trouve une version d'AjaxControlsTookit.dll compatible avec .Net 2. L'onglet que j'ai créé avec les contrôles de la version 4 ne réapparaît pas bien entendu, mais je peux en créer un avec les contrôles de la version 2. J'ai essayé avec ça, j'ai pu rouvrir une fois Visual Studio, ce qui est encourageant.

    Maintenant, ce que j'espère, c'est que ça dure. Allez, on se donne quelques jours pour dire que ça marche cette fois.

     

    • Marqué comme réponse Gloops lundi 18 juillet 2011 20:39
    vendredi 15 juillet 2011 08:17
  • Bonjour,

    Est-ce que votre problème est réapparu ? Il n’y a pas beaucoup des utilisateurs avec des problèmes similaires, mais il semble que c’est une incompatibilité entre le .dll que vous utilisez et le .NET Framework comme Gabriel vous a suggéré (voir aussi cette discussion).

    Cordialement,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    lundi 18 juillet 2011 12:02
  • Non, il semble bien que j'aie obtenu plus de stabilité. Je suis arrivé au bout de l'atelier 3, celui qui met en œuvre les Ajax Extensions (ScriptManager, UpdatePanel, UpdateProgress, Timer). En fait, l'Ajax Extension Toolkit est utilisé dans les ateliers suivants, donc a priori j'attendais de l'avoir mis en œuvre pour me manifester, mais déjà, il n'a pas disparu de la boîte à outils, donc ... ben ça marche :) Merci.
    lundi 18 juillet 2011 20:35
  • Bonjour,

     

    Merci pour tenir la communauté informée sur la suite de vos démarches.

     

    Bonne journée,

     

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mardi 19 juillet 2011 07:02
  • Bonsoir,

    Avant-hier soir, j'ai mis en œuvre le TextBoxWaterMarkExtender, et la boîte à outils n'a pas explosé. Donc, cette fois on peut dire que le AjaxControlToolkit fonctionne.

    Un point à ne pas perdre de vue : le site web de démonstration fourni avec, est propre à la version du AjaxControlToolkit avec laquelle il est fourni.

    J'ai un petit souci avec la mise en forme, concernant la légende affichée par le TextBoxWaterMark. A présent que j'ai vidé le cache j'arrive bien à changer la police sans intervention sur le navigateur, en revanche pour ce qui est de la couleur de caractère, rien à faire. Je peux mettre color=red, le texte s'affiche quand même en bleu. Y aurait-il quelque chose que j'aurais manqué ?

     

    jeudi 21 juillet 2011 17:29