添加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" />
如果您希望从磁盘加载(并修改)XML,请使用Build Action = None
和Copy = Copy Always
。
你会遇到的一个问题是,如果你把你的应用程序安装到"程序文件",你将无法在Windows Vista/7上编辑文件,除非你以管理员身份运行。-"程序文件"只能在安装时编辑。
一个好的做法是将XML复制到%APPDATA%'Your app
(APPDATA
=环境变量,使用System.Environment访问)。您可以在安装或首次运行期间执行此复制。%APPDATA%
用于运行时可变设置。
如果你将你的XML标记为None+CopyAlways,你可以在应用程序启动时将它从执行目录复制到%APPDATA%'Your app
,如果它还不存在于目标地址(如果还没有复制)。
您可以从%APPDATA%'Your app
加载它并读取最新设置