2010-06-14 6 views
1

J'ai un problème étrange avec une application Windows VB.Net. Sur mon ordinateur (le PC de développement), il exécute la dernière version de l'exe et dll mais sur l'ordinateur de mon collègue (il n'est pas un développeur et ne peut pas le déboguer) une version plus ancienne est exécutée. Il a remplacé tous les fichiers avec la nouvelle version:Même version dll différente sur différents ordinateurs?

alt text http://www.bilder-hochladen.net/files/4709-kn.jpg

Je ne sais pas où commencer à chercher la raison.

EDIT: la première chose que j'ai faite a été de redémarrer le pc de mon camarade mais cela ne servait à rien.

Quand une DLL est-elle installée dans le cache de l'assembly global? Parce que je l'ai cherché dans le gac avec gacutil.exe mais pas trouvé:

C:> C: \ WINDOWS \ Microsoft.NET \ Framework \ v1.1.4322 \ gacutil.exe/l Rule.dll Utilitaire de cache d'assembly global de Microsoft (R) .NET. Version 1.1.4318.0 Droit d'auteur (C) Microsoft Corporation 1998-2002. Tous les droits sont réservés. Global Assembly Cache contient les ensembles suivants: Le cache des fichiers Ngen contient les entrées suivantes: Nombre d'items = 0

J'ai également regardé dans le dossier d'assemblage mais pas trouvé de il y a de ces dll.

Informations complémentaires: l'un est chargé dynamiquement dans le code-behind de la dll: System.Reflection.Assembly.LoadFrom (« Rule.dll ») Les autres sont référencés dans le projet.

Répondre

1

Quand vous dites qu'il a remplacé toutes les versions, en êtes-vous vraiment sûr? Par exemple, est-il possible qu'il y ait une version dans le GAC qu'il ne trouve pas s'il fait juste une recherche sur le système de fichiers?

+0

Merci. Quand une DLL est-elle installée dans le cache de l'assembly global? Voir ma question mise à jour. –

+0

@Tim: Ils sont normalement installés avec GacUtil ou simplement en les faisant glisser dans le dossier 'Assembly' à l'aide de l'Explorateur Windows. Vous pouvez également parcourir le dossier 'Assembly' à l'aide de l'Explorateur Windows. Cela peut donc valoir la peine de le faire pour vous assurer qu'il n'est pas là. Le dossier est dans votre répertoire Windows. –

+0

J'ai déjà regardé dans le dossier d'assemblage mais je n'ai trouvé aucune DLL là-bas. –

1

ho1's answer peut bien être tout ce dont vous avez besoin, mais pour trouver toutes les causes possibles, vous devrez vous pencher sur le sujet entier de l'assemblage de liaison dans .NET. Il existe différents facteurs qui peuvent influencer l'emplacement de recherche d'un assembly particulier, notamment les redirections de liaison d'assembly et les stratégies d'éditeur. Voici un article qui explique une partie de ce sujet:

http://www.techbubbles.com/net-framework/assembly-binding-in-net-framework/

Si vous Google, vous trouverez beaucoup d'autres.

Questions connexes