【问题标题】:Load XML File from Project Directory从项目目录加载 XML 文件
【发布时间】:2011-05-27 10:20:06
【问题描述】:

我的 WPF 项目中有一个由字体、图像和 XML 文件组成的“资产”文件夹。如何使用 C# 从项目目录中读取 XML 文件?在Assembly上试过了,但是找不到文件。关于 XAML 可以非常轻松地从该文件夹下载图像。

当我使用跟随字符串时,找不到文件。如何从项目目录加载我的 XML 文件?

string stream = "pack://application:,,,/ReferencedAssembly;component/assets/myxml.xml";

提前感谢您的帮助。

【问题讨论】:

  • 你为什么不把你的文件放在项目资源中,这样它就会嵌入到程序集中。

标签: c# wpf


【解决方案1】:

使用 Linq to Xml 加载文件的一种解决方案是:

XDocument myxml = XDocument.Load(@"assets\myxml.xml");

【讨论】:

  • 并确保您已将“复制到输出目录”设置为 true。我总是想念它,想知道为什么它不起作用:)
  • 必须在哪里设置“复制到输出目录”?在 XDocument 中?
  • 如果您在解决方案导航器中右键单击您的 xml 文件并选择属性,您应该会看到该选项。
【解决方案2】:

在深网搜索后:

将 XML 文件的“构建操作”属性设置为“嵌入式资源”。

并使用:

XDocument xdoc = XDocument.Load(this.GetType().Assembly.GetManifestResourceStream("ProjectName.FolderName.XmlArchive.xml"));

=D

【讨论】:

    【解决方案3】:

    我有一个非常相似的问题,我无法从项目结构中的文件夹加载文件。所有设置都是正确的,但它仍然返回 IO 错误。

    所有答案都可能是正确的 - 但在我的情况下,它仍然想要加载文件。需要多更改一个属性:

    • 构建操作 = 嵌入式资源
    • 复制到输出目录 = 始终复制

    如果不将其设置为“嵌入式资源”,则无法从我的程序中访问它。更改后它正在工作。

    【讨论】:

      【解决方案4】:

      字符串 strAppPath = AppDomain.CurrentDomain.BaseDirectory; 私有 XDocument xDoc = XDocument.Load(strAppPath +"ActionCol\actionInfo1.xml");

      【讨论】:

        猜你喜欢
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-25
        • 1970-01-01
        相关资源
        最近更新 更多