无法在运行时从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加载它,该项目不存在,并且它哭了。我如何让它从项目'数据加载,而不必包括完整的路径,即使只是为了测试的目的?

在安装程序中打包程序时也会导致问题,因此需要我在加载之前将文件复制到不同的位置吗?

无法在运行时从c#的ProjectData文件夹加载文档

这是因为你的exe是从Project'bin'debug目录运行的(这是当你在Visual Studio中按F5/Run/debug时你的构建输出的地方,假设你正在做一个调试构建。

如果您想避免硬编码路径,您可以使用构建后事件将文件复制到Project'bin'debug'data目录。

在解决方案资源管理器中右键单击项目并选择属性。转到Build Events选项卡。这有点像写批处理文件,你可以从那里复制文件。(点击"编辑",然后按下宏按钮——有扩展变量提供你的路径)

命令看起来像这样(来自内存,所以可能有点偏离):

copy $(ProjectDir)'Data'Memories.xml $(TargetDir)'data'.