添加WPF c# XML文件作为资源

本文关键字:资源 文件 XML WPF 添加 | 更新日期: 2023-09-27 17:50:19

我正在使用一个XML文件添加到我的项目中,具有以下属性:

Build Action : Resource
Copy to output directory : Copy Always

然后,当可执行文件运行时,我需要用户能够编辑XML(添加、删除和修改节点)。这可能吗?或者我需要将Build Action更改为Content吗?

感谢

编辑:我已经删除了它,并再次添加为内容。但现在我有另一个问题:当我将其添加到项目时,它会在应用程序根目录(WpfApplication1'WpfApplication1'myfile.xml)中查找它。但是当我运行应用程序时,负责添加节点的函数工作正常,但它将文件保存到WpfApplication1'WpfApplication1'bin'Debug'目录!因此,"真正的"myfile.xml不会更新。

我用的是:

XMLHosts.Load("myfile.xml");
XMLHosts.Save("myfile.xml");

,数据源声明为:

<XmlDataProvider x:Key="MyfileData"  Source="myfile.xml" XPath="Books/Book" />

添加WPF c# XML文件作为资源

如果您希望从磁盘加载(并修改)XML,请使用Build Action = NoneCopy = Copy Always

你会遇到的一个问题是,如果你把你的应用程序安装到"程序文件",你将无法在Windows Vista/7上编辑文件,除非你以管理员身份运行。-"程序文件"只能在安装时编辑。

一个好的做法是将XML复制到%APPDATA%'Your app (APPDATA =环境变量,使用System.Environment访问)。您可以在安装或首次运行期间执行此复制。%APPDATA%用于运行时可变设置。

如果你将你的XML标记为None+CopyAlways,你可以在应用程序启动时将它从执行目录复制到%APPDATA%'Your app,如果它还不存在于目标地址(如果还没有复制)。

您可以从%APPDATA%'Your app加载它并读取最新设置