Bonjour,
Je rencontre un comportement inattendu lors de l'utilisation d'un SaveFileDialog et je sèche un peu sur la façon de contourner le problème :
Notre application comporte une base sqlite gérée avec EF. La chaîne de connexion du app.config pointe directement vers le fichier de base de données puisque celui-ci est contenu à la racine de l'application.
Lorsque dans l'application j'utilise un SaveFileDialog (qui va fournir le chemin du fichier cible à un TextWriter utilisé par un XmlSerializer pour sérialiser les données de l'utilisateur), l'application perds la connexion à la base de données et va recréer un fichier catalog.db dans le repertoire où le savefiledialog va enregistrer le fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 connection string='data source="catalog.db"'"
En débuggant, j'ai compris que le repertoire courant (%CD%) changeait lors de l'utilisation de SaveFileDialog.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 TextWriter tw = new StreamWriter(filePath); serializer.Serialize(tw, this.Project); tw.Close();
Cependant, dans l'optique d'un déploiement, comment puis-je faire en sorte que ma connexion string pointe toujours vers le répertoire racine de l'application sans utiliser de chemin absolu? Le cas échéant, comment paramétrer ma chaîne de connexion lors du déploiement? Je n'ai encore jamais créé une application visant à être déployée via un installeur (ClickOnce ou autre) et la documentation msdn est assez légère sur cette question.
Partager