IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

X64 problèmes d'écriture


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Par défaut X64 problèmes d'écriture
    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.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 97
    Par défaut
    Je ne comprends pas que tu n'aies pas eu le problème sous W7. Tu as désactivé l'UAC ?

    Sinon il n'y a pas de miracle :
    - Soit tu demandes les droits administrateur dans ton application (et l'utilisateur aura une invite UAC)
    - Soit tu écris dans un dossier où tu as des droits (pour ça que certaines applications s'installent dans Users\AppData\...

    Si je ne m'abuse, tu n'as besoin d'écrire dans Program Files que quand tu mets à jour ton application ? A ce moment là, écris un second programme qui se charge de faire la mise à jour, et qui lui déclenche une invite UAC au lancement.

    On se retrouve donc avec le process suivant :

    - Le programme principal vérifie s'il y a des maj
    - Si oui, il télécharge dans le dossier temporaire (%temp%), puis lance le programme de mise à jour
    - Le programme de mise à jour déclenche automatiquement l'affichage de l'invite UAC (il me semble qu'il y a quelque chose à modifier dans le manifest pour aboutir à ce résultat, tu devrais trouver facilement sur google)
    - Le programme de mise à jour fais la copie vers Program Files, puis relance le programme principal

    Ce faisant, tu n'as une invite UAC qu'en cas de mise à jour, ce qui est un comportement tout à fait normal et acceptable pour l'utilisateur.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Par défaut
    Oui en effet sur ma machine de dev (win7) je suis sans uac.
    Je crois que je vais prendre ta solution d'un deuxième programme.
    J'avais déjà lu des sujets à propos des manifests,
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  2. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28
  3. Problème d'écriture dans un tableau
    Par Hokagge dans le forum MFC
    Réponses: 46
    Dernier message: 08/07/2005, 16h47
  4. problème d'écriture dans la BD
    Par billy_ze_kid dans le forum ASP
    Réponses: 6
    Dernier message: 12/06/2005, 20h30
  5. [communication série] problème lecture/écriture
    Par davinout dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 01/06/2005, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo