nicotom
Messages postés20Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 4 février 2010
-
25 juil. 2005 à 09:44
invanoe
Messages postés1Date d'inscriptionjeudi 27 mars 2003StatutMembreDernière intervention15 février 2006
-
15 févr. 2006 à 21:37
Bonjour à tous
Je suis en train de réaliser un logiciel sous VS2003 qui comporte environ 25 classes.
Mon but est de remplacer ces classes par une dll.
J'ai donc compiler mon projet en "bibliotheque de classe" afin de créer la dll.
J'ai supprimer les classes de mon projet et ai ajouté la dll en référence.
Lors de la compilation tout se passe bien mais à l'execution, certain appels vers la dll plantes !!
WtfmCs.Messages.Initialisation(Langages.lEnglish);
// cet appel passe bien
WtfmCs.TypeModels.initialisation(); // cet appel plante
Les erreurs générées sont:
Une exception non gérée du type 'System.TypeLoadException' s'est produite dans WtfmCs.exe
Informations supplémentaires : Impossible de charger le type WtfmCs.CTypeModel à partir de l'assembly WtfmCs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
ET
Une exception non gérée du type 'System.TypeInitializationException' s'est produite dans WtfmCs.exe
Informations supplémentaires : Une exception a été levée par l'initialiseur de type pour "WtfmCs.TypeModels".
Voila. En esperant que vos lumieres pourront m'aider
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 25 juil. 2005 à 10:15
Salut, je pense qu'il manque une référence à la DLL qui contient le type WtfmCs.CTypeModel, ou alors ce type n'existe plus dans une autre DLL qui est appelée par la 1ère.
nicotom
Messages postés20Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 4 février 2010 25 juil. 2005 à 10:21
En fait le CTypeModel est une des classes que j'ai intégré à la dll (aussi bien que Messages).
comment se fait il que certains appels passent et pas d'autres ?
Chris -> mon maitre de stage veut que les classes ne soit pas accessibles (par les étudiants) pour éviter les "boulettes".
Donc cette solution ne convient pas.
Lutinore -> comment ajouter une reference à une classe contenu dans la dll ?
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 20051 25 juil. 2005 à 10:28
Tu peux avoir pour toi 2 projets dans une solution afin de faire des
tests (je crois pas que se soit interdit) et puis même SourceSafe gère
les droits d'accès. Un lecture seule sur une source ça marche aussi.
M'enfin, c'est mon avis et je suis pas ton maitre de stage (dommage ).
Tu peux regarde avec un viewer de classe (sur ta dll) pour savoir si
tes méthodes existes bien, si y a pas un problème de version.
Sinon, y peut pas y avoir une exception dans le code contenu dans la dll.
Chris
N'oubliez pas de cloturer votre post.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 25 juil. 2005 à 10:46
Comme le dit 69Chris, la première chose à faire c'est de regarder avec le visualiseur d'objets de VS ( double click sur la référence dans l'explorateur de projets) ou avec ildasm.exe ( dans le répertoire du SDK ou de VS ) si le type CTypeModel est bien dans la DLL.
titeoe
Messages postés433Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention 4 décembre 20091 25 juil. 2005 à 10:48
Bonjour 69Chris ,
pour info : quand tu dis que :
"Sinon, y peut pas y avoir une exception dans le code contenu dans la dll."
Tu te trompes. Une DLL contient du code éxécutable qui peut planter comme tout bon code qui se respecte.
Nicotom > pour ajouter une ref a une classe a ton projet, il faut ajouter ue référence a la DLL dans ton projet, puis instancier les classes. On ajoute pas de ref a une classe mais a une DLL.
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 20051 25 juil. 2005 à 11:04
Désolé, j'ai oublié le "?" à la fin de la ligne (l'erreur est humaine,
pour preuve les progs qu'on fait en ont toujours). C'était plus une
question qu'autre chose. Dans une appli y a pas de bug, jusqu'au jour
où...
Sinon, pour l'ajout de la référence, c'est pas compliqué. Au niveau de
l'explo de solution, y a un "dossier" références, la dll "WtfmCs" doit
y être.
nicotom
Messages postés20Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 4 février 2010 25 juil. 2005 à 11:47
Merci a vous mais pas de solution .
La dll est bien présente dans le dossier "refferences"
titeoe > l'instentiation est bien présente .....
J'ai également vérifié le contenu de la dll et CTypeModel est bien dedans. Tout comme Units qui ne fonctionne pas nonplus.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 25 juil. 2005 à 12:18
Et à l'exécution es tu sûr d'utiliser la même DLL que celle référencée à la compilation ? Il y'en a pas peut être une dans la GAC et une dans le répertoire courant de l'application, ou bien ailleurs.
invanoe
Messages postés1Date d'inscriptionjeudi 27 mars 2003StatutMembreDernière intervention15 février 2006 15 févr. 2006 à 21:37
J'ai rencontré un problème similaire. J'ai renomé mon projet winform de Test en prjTest, et j'ai ajouté une bibliothèque appelé Test à ma solution.
Et a chaque compilation cela planté sérieusement. En fait, apparement quand on renome il ne met pas tout à jour.
J'ai donc modifié à la mano le fichier projet .csproj les 2 paramètres suivant qui ont gardé l'ancien nom Test au lieu prjTest.