-1

它是一个 WPF 应用程序。

我正在尝试加载一个 xml 文件,如下所示:

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

但是当我使用发布时Clickonce,它将无法找到该文档。

我应该如何获得当前位置,例如basedir

谢谢你。

4

4 回答 4

0

试用:

AppDomain.CurrentDomain.BaseDirectory

这将获得基本目录

于 2012-09-21T09:21:32.827 回答
0

你的意思是System.Reflection.Assembly.GetExecutingAssembly().Location

于 2012-09-21T09:22:11.600 回答
0

尝试,

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

Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) 这个可执行文件位置的返回路径。

于 2012-09-21T09:22:34.910 回答
0

如果 XML 文件是某种形式的用户可配置输入,则该文件应位于 Windows 通用应用程序数据文件夹中(请参阅 Environment.SpecialFolder.CommonApplicationData)。因此,路径不是相对的,而是从部署代码“知道”的已知基础构造的路径。

我喜欢在 Environment.SpecialFolder.CommonApplicationData 中为我的公司和应用程序创建一个文件夹,例如:\\

也许我们需要更多细节。我希望这有帮助。

于 2012-09-21T09:22:52.207 回答