gpt4 book ai didi

c# - 在 C# 中加载 XML 文件路径

转载 作者:数据小太阳 更新时间:2023-10-29 01:42:48 24 4
gpt4 key购买 nike

我正在尝试加载位于我项目文件夹中的 XML 文件(使用 Visual Studio 2012)。

结构是这样的:

solutionRoot\
- service\
-- ServiceClass.cs
-- AppValues.xml <-- this is the file I want to load

在我的 ServiceClass 中,我尝试使用以下代码从 XML 文件中读取:

public String GetXmlElement(String elementName)
{
[....]
XDocument document = XDocument.Load(@"\service\AppValues.xml");
[...]
}

当我尝试测试代码时出现以下错误:

Test method PandaTests.ServiceTest.ReadXmlCanReadXml threw exception: 
System.IO.DirectoryNotFoundException: Could not find a part of the path
'C:\Users\MyName\Documents\GitHub\project\Project22\PandaTests\bin\Debug\service\AppValues.xml'.

很明显是我的路径有问题,但是我想不通怎么把相对路径弄对。我在这里查看了有关堆栈溢出的其他问题,但其中许多问题似乎过于复杂。有没有一种简单的方法可以在不提供绝对路径的情况下加载 XML 文件?

最佳答案

当 VS 运行您的程序时,您的工作目录设置为 Debug/Release 文件夹,而不是您的解决方案根目录。

你有几个我知道的选择......

  1. 使用绝对路径,但你不希望这样
  2. 将您的文件设置为在构建时复制到您的工作目录中。您可以通过在解决方案资源管理器中修改文件的属性来执行此操作。 感谢 T.Roland 在下面的评论中:将 Copy to Output Directory 设置为 Copy if Newer 并将 Build Action 设置为 Embedded Resource;
  3. 将您的解决方案的工作目录修改为您的解决方案根目录 This thread提供了不同的方法来实现这一点。

关于c# - 在 C# 中加载 XML 文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19957369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com