這是一個WPF應用程序。文件路徑
我試圖加載一個XML文件,如下所示:
XmlDocument doc = new XmlDocument();
doc.Load("../../doc/test.xml");
但是當我發佈使用Clickonce
,它將無法找到該文件。
我應該如何獲得當前位置,例如basedir
?
謝謝。
這是一個WPF應用程序。文件路徑
我試圖加載一個XML文件,如下所示:
XmlDocument doc = new XmlDocument();
doc.Load("../../doc/test.xml");
但是當我發佈使用Clickonce
,它將無法找到該文件。
我應該如何獲得當前位置,例如basedir
?
謝謝。
嘗試用,
XmlDocument doc = new XmlDocument();
doc.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + @"\test.xml");
Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly()位置)的可執行文件位置的這種返回路徑。
嘗試:
AppDomain.CurrentDomain.BaseDirectory
這將讓基本目錄
你的意思是System.Reflection.Assembly.GetExecutingAssembly().Location
?
如果XML文件是某種形式的用戶可配置輸入,那麼該文件應該位於Windows常用應用程序數據文件夾中(請參閱Environment.SpecialFolder.CommonApplicationData)。因此,路徑不是相對的,而是由部署代碼「知道」的已知基礎構建的路徑。
我喜歡創造Environment.SpecialFolder.CommonApplicationData一個文件夾,我的公司和應用程序是這樣的:\\
也許我們需要更多的細節。我希望這有幫助。
BaseDirectory可以在運行時設置,因此不能保證是有效的。 –