【问题标题】:Deploy XML file and load it部署 XML 文件并加载它
【发布时间】:2012-02-08 18:48:36
【问题描述】:

我在我的解决方案路径中创建了一个 XML 文件。我的解决方案有多个项目(其中一个是服务),现在其中一些项目需要引用 XML 文件

  1. 当我尝试使用时

    XDocument configXML = new XDocument.Load("Config.xml");
    

我收到一个错误

找不到符号“加载”

我正在使用 System.Xml.Linq

  1. 因为我无法解决问题 1,所以我尝试了

    XElement rootElement = XElement.Load("Config.xml");
    

这行得通,但是当我运行程序时,我得到一个错误:

找不到xml文件

既然是在../Release 文件夹中搜索,我可以将xml文件复制到谁的release/debug/deployed文件夹中?

需要帮助!

【问题讨论】:

  • 你有new XDocument.Load(...不应该只是XDocument.Load(...吗?
  • 检查 Config.xml 的路径
  • 文件最初位于何处?
  • 问题是什么?如何将文件从解决方案复制到构建文件夹?还是什么?
  • @abatishchev,基本上你是对的,如何将xml文件添加到项目的依赖项中

标签: c# .net xml linq-to-xml


【解决方案1】:

Load 是静态方法,不需要实例:

XDocument configXML = XDocument.Load("Config.xml");

如果您希望 Config.xml 文件自动复制到输出目录,您可以在解决方案资源管理器中选择它并设置其复制到输出目录属性:

【讨论】:

  • 很好,这是您从 Java 迁移到 .NET 时遇到的问题,并且经过了很长时间!对第二个问题有帮助吗?
  • @livingtolearn,不太清楚你的第二个问题是什么。如果 XML 文件与可执行文件不在同一个文件夹中,您可以指定它的相对或绝对路径:XDocument configXML = XDocument.Load("foo/bar/Config.xml");。如果您想自动将 Config.xml 文件复制到输出文件夹,您可以在属性窗口中设置其Copy to Output Directory 属性。我已经更新了我的答案。
  • “解决方案项目”文件夹中的 xml 文件并没有提供“复制到输出目录”选项,那么解决方法是什么?
  • @livingtolearn,单击解决方案资源管理器中的 XML 文件,然后单击 F4 以显示属性窗口。
  • 不,这正是我第一次所做的,现在我将文件移动到一个项目中,现在我得到了这个选项。我想它很好,一些限制,不知道它们是什么。
【解决方案2】:

正如尼克在对该问题的评论中指出的那样,在调用 XDocument.Load 静态方法时不应使用 new 关键字。

因此

XDocument configXML = XDocument.Load("Config.xml");

应该工作

【讨论】:

    【解决方案3】:

    在解决方案资源管理器中选择文件,并将文件的“复制到输出目录”属性设置为“如果较新则复制”或“始终”并将构建操作设置为“无”

    【讨论】:

      【解决方案4】:

      每次成功构建项目时,使用 Post Build 事件将文件复制到 Release 文件夹 http://msdn.microsoft.com/en-us/library/ke5z92ks.aspx

      【讨论】:

        猜你喜欢
        • 2020-11-29
        • 1970-01-01
        • 2019-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多