C# 如何使用XDocument.Load()获取应用程序目录中的文件
我在项目的文件夹中有一个XML文件。我想使用C# 如何使用XDocument.Load()获取应用程序目录中的文件,c#,.net,xml,linq-to-xml,system,C#,.net,Xml,Linq To Xml,System,我在项目的文件夹中有一个XML文件。我想使用XDocument.Load(string),但我是否必须将应用程序的完整路径作为URI的一部分来编写(例如在我的示例中) 最好将XML文件添加为项目资源:转到项目的属性,然后转到资源选项卡。选择添加资源并添加文件。 然后,您将能够通过这种方式获取XDocument: XDocument xml = XDocument.Parse(Properties.Resources.Registro); 然而,如果你想让一切都像你做的那样,你可以用反思。 请参
XDocument.Load(string)
,但我是否必须将应用程序的完整路径作为URI的一部分来编写(例如在我的示例中)
最好将XML文件添加为项目资源:转到项目的属性,然后转到资源选项卡。选择添加资源并添加文件。 然后,您将能够通过这种方式获取XDocument:
XDocument xml = XDocument.Parse(Properties.Resources.Registro);
然而,如果你想让一切都像你做的那样,你可以用反思。
请参见此处的答案:另一种绕过ressource问题的方法是将文件添加到project(与ressource解决方案相同),然后单击该文件,并在属性选项卡中选择“复制到输出路径”中的“始终复制”。这样,当您构建时,文件将被复制到输出目录中,操作非常简单
XDocument xml = XDocument.Load("Registro.xml");
我认为您要么正在寻找项目路径,要么正在寻找组装路径。。。不管怎样,这个问题都会有帮助。。我更倾向于“更新时复制”。这有点干净。@JurijsKastanovs这不是“干净”而是不同的。在某些情况下,如果不是较新的,则需要进行复制(例如,如果您的应用程序修改了可以在“调试”中启动的xml文件,请在visual studio中进行一些更改,则应用程序将更改该文件,而在下一次调试时,您的VS更改将被忽略,因为目标文件上的修改日期将比解决方案中的部署日期更新)。这实际上取决于他们的用例
XDocument xml = XDocument.Load("Registro.xml");