.Net应用程序已安装/正在AppData文件夹中运行?

时间:2018-08-01 11:52:59

标签: wpf deployment clickonce

我有一个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文件?
  • 这是搞乱出版物的怪异产物吗?

谢谢!

编辑

使用发布向导(或立即发布)发布应用程序。

XML文件被标记为   生成操作:“内容”和   复制到输出目录:“始终复制” 在属性中。

1 个答案:

答案 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属性指定该文件。

(我忽略,调整和突出显示的部分很少)