2012-09-21 2 views
-1

Il s'agit d'une application WPF.Chemin d'accès à un document

Je suis en train de charger un fichier xml comme ce qui suit:

XmlDocument doc = new XmlDocument(); 
doc.Load("../../doc/test.xml"); 

mais quand je publierai en utilisant Clickonce, il ne sera pas en mesure de trouver le document.

Comment obtenir l'emplacement actuel, comme basedir?

Merci.

Répondre

0

Essayez avec

XmlDocument doc = new XmlDocument(); 
doc.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + @"\test.xml"); 

Path.GetDirectoryName (. System.Reflection.Assembly.GetEntryAssembly() Localisation) ce chemin de retour de l'emplacement du fichier exécutable.

0

Essayez:

AppDomain.CurrentDomain.BaseDirectory 

Cela obtenir le répertoire de base

+0

BaseDirectory peut être défini au moment de l'exécution, il n'est donc pas garanti qu'il soit valide. –

0

Voulez-vous dire System.Reflection.Assembly.GetExecutingAssembly().Location?

0

Si le fichier XML est une forme d'entrée configurable par l'utilisateur, ce fichier doit se trouver dans un dossier de données d'application Windows commun (voir Environment.SpecialFolder.CommonApplicationData). Ainsi, le chemin n'est pas relatif mais un chemin construit à partir d'une base connue que le code de déploiement «connaît».

J'aime créer un dossier dans Environment.SpecialFolder.CommonApplicationData pour quelque chose comme mon entreprise et de l'application: \\

Peut-être que nous avons besoin de plus de détails. J'espère que ça aide.

Questions connexes