Bonjour à tous,

Je réalise un application wpf qui nécessite une dll fonctionnant en x86.
Pour régler ce problème, j'ai changé la configuration du projet de anyCpu vers x86. Jusque là tout se passé plutôt bien. Puis j'ai voulu intégrer un système de mise à jour. Pour se faire, j'ai fait une routine maison, qui télécharge les fichiers, déplace les existants en backup, puis déplace les nouveaux fichiers. Aucun problème sur seven x86, ni sur xp x64. Puis j'ai testé sur un vista en x64, et là ce fut la surprise. Je retrouve bien mon logiciel dans le répertoire program files x86, mais les fichiers créés ou téléchargés depuis l'application se retrouve à un tout autre endroit : C:\Users\"user"\AppData\Local\VirtualStore\Program Files (x86)\"mon programme"
Et de plus l'utilisateur ne dispose pas de droits d'écriture dans le répertoire program fils x86, d'où la présence de ce répertoire je pense.


PS: j'utilise l'install wizard de vs 2k8

Pour Retrouver l'emplacement de mon appli, j'utilise AppDomain.CurrentDomain.BaseDirectory , qui me retourne toujours le bon path dans mes cas d'utilisation (aussi sur les x64)

Cordialement et merci,

EDIT : Après quelques recherches, vista et UAC utilise ce virtual store pour éviter qu'un utilisateur sans droits sur ProgramFiles (Ce qui ma foi n'est pas illogique) envoi les créations de fichiers vers ce dossier virtualstore. Le problème c'est que mon appli n'en n'est même pas consciente. Donc je suis d'accord avec le fait de ne pas écrire directement dans le répertoire programe files, mais comment mettre à jour mon application dans ce cas? Sans pour autant demandé à l'utilisateur de modifier ses droits, ni demander à chaque lancement de l'application de se lancer en mode administrateur.