无法在运行时从c#的ProjectData文件夹加载文档
本文关键字:ProjectData 文件夹 加载 文档 运行时 | 更新日期: 2023-09-27 18:14:03
我正在尝试加载一个XML文档,这是在项目'数据,如下所示:
XmlDocument memoryDoc = new XmlDocument();
memoryDoc.Load(@"Data/Memories.xml");
XmlNode xmlNode_Memories = memoryDoc.SelectSingleNode("Memories");
XmlElement xmlElement_Memory = memoryDoc.CreateElement("Memory");
xmlElement_Memory.SetAttributeNode("Title", "");
xmlElement_Memory.SetAttribute("Title", "hijdnjh9d2qhei");
xmlNode_Memories.AppendChild(xmlElement_Memory);
memoryDoc.Save(@"Data/Memories.xml");
但是程序正在尝试从Project'bin'Debug'Data加载它,该项目不存在,并且它哭了。我如何让它从项目'数据加载,而不必包括完整的路径,即使只是为了测试的目的?
在安装程序中打包程序时也会导致问题,因此需要我在加载之前将文件复制到不同的位置吗?
这是因为你的exe是从Project'bin'debug目录运行的(这是当你在Visual Studio中按F5/Run/debug时你的构建输出的地方,假设你正在做一个调试构建。
如果您想避免硬编码路径,您可以使用构建后事件将文件复制到Project'bin'debug'data目录。
在解决方案资源管理器中右键单击项目并选择属性。转到Build Events选项卡。这有点像写批处理文件,你可以从那里复制文件。(点击"编辑",然后按下宏按钮——有扩展变量提供你的路径)
命令看起来像这样(来自内存,所以可能有点偏离):
copy $(ProjectDir)'Data'Memories.xml $(TargetDir)'data'.