我有一个WPF应用程序(安装在Windows 10计算机上),它依赖于XML文件来存储各种数据元素。
构建并安装应用程序后,将应用程序和XML文件部署到不同的文件夹,如下所示:
XML文件
[AppData \ Local \ Apps ...] \ vita..tion_4af4e5dd3b243aa8_0001.0000_ fa5707b5107abce1
EXE
[AppData \ Local \ Apps ...] \ vita..tion_4af4e5dd3b243aa8_0001.0000_ f75ca9501de16621
这使我无法使用以下方式访问文件:
Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + "\\XML\\GeneralInfo.xml";
谢谢!
使用发布向导(或立即发布)发布应用程序。
XML文件被标记为 生成操作:“内容”和 复制到输出目录:“始终复制” 在属性中。
答案 0 :(得分:1)
我相信这是正常行为 不是由于混乱出版的一些怪异产物¹造成的。
尝试使用以下方法访问文件:
var deployment = ApplicationDeployment.CurrentDeployment;
var pathToXml = Path.Combine(deployment.DataDirectory, "MyFile.xml");
您将必须在应用程序上添加对System.Deployment
的引用。
希望有帮助:)
-
¹来自Chester Hong对this问题的回答:
每个ClickOnce应用程序都安装在按用户,按应用程序的缓存文件夹中。您可以找到以下文件夹:
C:\ Users \ username \ AppData \ Local \ Apps \ 2.0
您可以转到“发布”选项卡,然后单击“应用程序文件”按钮。 发布状态为数据文件的文件将安装到数据文件夹,您可以通过
CurrentDeployment.DataDirectory
属性指定该文件。
(我忽略,调整和突出显示的部分很少)