2009-04-27 5 views
5

J'ai une application ClickOnce (app1) qui appelle les fichiers DLL d'une autre solution (app2). J'ai récemment mis à jour cette application chez un client et une chose étrange s'est produite.Déploiement .NET ClickOnce et mauvais assemblys appelés après la version mise à jour

Il a obtenu la nouvelle version (version de publication est correcte dans le Panneau de configuration /Ajouter ou supprimer des programmes) de app1 et la version de l'application est correcte comme inspecté manuellement dans l'application. Mais les fichiers DLL appelés à partir de la solution référencée (app2) étaient toujours les anciens.

Nous avons supprimé tous les fichiers dans C:\Documents and Settings\username\Local Settings\Apps\2.0 et réinstallés. Cette fois il n'y avait pas de problème, les fichiers DLL corrects ont été appelés.

Une chose à mentionner est que les numéros de version sont complètement différents dans la nouvelle version depuis que nous avons changé ce tout en améliorant à partir de Visual Studio de     2005 à Visual Studio de     2008. Ancien/nouvelle version publiée: 1.0.0.6/1.9 .1.6.

+0

Nous avons déjà vu ça aussi! Dans notre cas, il était dll dans la même solution que pour une raison quelconque renvoyé aux anciens - et devinez ce qui s'est passé lorsque nous avons changé l'API de cette DLL ... Aucune idée pourquoi, mais les utilisateurs ont généralement eu l'application pour un moment et fait quelques mises à jour. Effacer le dossier 2.0 fixe toujours les choses. – andyhammar

Répondre

3

Cela semble être un bogue dans .NET Framework 3.5 SP1.

http://support.microsoft.com/default.aspx/kb/971052

Je l'ai fixé par:

  1. Vider le cache en ligne .NET à partir d'une invite de commande: « rundll32 dfshim CleanOnlineAppCache »
  2. Désinstallez toutes les applications .NET qui pourraient avoir une référence au même assemblage problématique.
  3. Réinstallez toutes les applications.
+0

Le lien est (effectivement) brisé. –

Questions connexes