它是一个 WPF 应用程序。
我正在尝试加载一个 xml 文件,如下所示:
XmlDocument doc = new XmlDocument();
doc.Load("../../doc/test.xml");
但是当我使用发布时Clickonce
,它将无法找到该文档。
我应该如何获得当前位置,例如basedir
?
谢谢你。
试用:
AppDomain.CurrentDomain.BaseDirectory
这将获得基本目录
你的意思是System.Reflection.Assembly.GetExecutingAssembly().Location
?
尝试,
XmlDocument doc = new XmlDocument();
doc.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + @"\test.xml");
Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) 这个可执行文件位置的返回路径。
如果 XML 文件是某种形式的用户可配置输入,则该文件应位于 Windows 通用应用程序数据文件夹中(请参阅 Environment.SpecialFolder.CommonApplicationData)。因此,路径不是相对的,而是从部署代码“知道”的已知基础构造的路径。
我喜欢在 Environment.SpecialFolder.CommonApplicationData 中为我的公司和应用程序创建一个文件夹,例如:\\
也许我们需要更多细节。我希望这有帮助。