【问题标题】:Wpf publish can't find content: "could not find part of the path "Wpf 发布找不到内容:“找不到部分路径”
【发布时间】:2015-10-28 07:49:13
【问题描述】:

我创建了一个 Wpf 应用程序,它由 3 个项目组成,在一个不是我的主要项目的项目中,我正在访问一些 config.xml 文件,从中读取数据并写入数据。

在我的应用程序中,我访问此文件的方式如下:

string xmlStr = File.ReadAllText("../Content/StationConfig.xml");

或:

doc.Save("../Content/StationConfig.xml");

它在调试模式下在我的应用上运行良好,但是当我发布时出现错误:

找不到部分路径

而且它查看的地方是应用程序:

C:\Users\petric\AppData\Local\Apps\2.0\075BBVBO.9MZ\BWMQ2V0B.PE5\Content\StationConfig.xml

此文件需要在将安装我的应用程序的每台 PC 上都可用。 我的文件构建操作设置为内容 并将其复制到输出目录设置为始终复制。

我已经阅读了很多关于这个问题的问题,但仍然无法找到解决方案,还请阅读:WPF Application Resource, Content, and Data Files

有什么建议吗?

【问题讨论】:

  • 您是否将该文件添加到您的项目中???
  • 什么意思?我相信我做到了...
  • 在visual studio中你看到那个文件???
  • 点击该文件并查看它的属性窗口。必须有构建操作。可能它没有设置为内容。设置为内容
  • 是web项目还是windows?

标签: c# wpf publish


【解决方案1】:

好的,看完这个问题:Including xml files when deploying WPF applicationamit dayama 的帮助下,解决方案是查看

ApplicationDeployment.CurrentDeployment.DataDirectory

而不是看

AppDomain.CurrentDomain.BaseDirectory

正如answer 正确建议的那样。

【讨论】:

    【解决方案2】:

    它正在寻找目录 C:\Users\petric\AppData\Local\Apps\2.0\075BBVBO.9MZ\BWMQ2V0B.PE5 因为它是您的当前目录,并在发布时尝试保存文档并检查您是否有许可与否。很可能它不允许你保存。因此,请检查您是否对该位置拥有全部权利。反过来,尝试将位置更改为相对路径以外的其他路径(暂时)。这可能会为您指明正确的方向。

    【讨论】:

    • 我实际上拥有该位置的完全权限,当我使用完整路径时,可以毫无问题地找到文件,但我需要一个可以在任何将安装应用程序的 PC 上运行的解决方案
    • 您在寻找:string xmlStr = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "/Content/StationConfig.xml");
    • 似乎是对的,也许这就是解决方案,你能给我一个链接,指定每个位置代表什么吗?
    • AppDomain.CurrentDomain.BaseDirectory >> 指的是当前应用程序的方向,而当你使用 ../ 时指的是工作目录。如果您注意到,就会有所不同。对不起,我没有链接,但你可以在谷歌搜索..你会发现很多相关的链接。
    • 这几乎解决了,问题是它正在寻找包含所有 .dll 文件的文件夹中的文件,而保存该文件的实际文件夹位于其他位置,Content 文件夹位于同一安装时创建 wpf.exe.config 的文件夹。我如何引用该位置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 2021-04-20
    相关资源
    最近更新 更多