Visual Studio 找不到 XML 文件

本文关键字:文件 XML 找不到 Studio Visual | 更新日期: 2023-09-27 17:55:55

我正在尝试开发Windows 7 Phone,我正在使用一个XML文件,我需要解析该文件,然后执行Linq查询。

问题是这样的:

每当我尝试访问该文件(它存储在本地)时,它都会返回一个错误,指出找不到该文件,因为它不是 XAP 包的一部分。

我已经尝试了另一种使用StreamReader的解决方案,但我仍然收到模拟错误:

尝试访问该方法失败 System.IO.File.OpenText(System.String)

这是我正在使用的代码:

using (StreamReader reader = File.OpenText("C:/Users/Desktop/Assign/obj/Debug/buildings.kml"))
        {
            var xdoc = XDocument.Load ("buildings.kml");
            XNamespace kml = "http://www.opengis.net/kml/2.2";
            var dict = xdoc.Descendants(kml + "Placemark")
                          .ToDictionary(d => d.Element(kml + "name").Value,
                          d => d.Element(kml + "id").Value);
            foreach (var b in dict) {
                Console.WriteLine ("Building Name -> " + b.Key + " Building ID -> " + b.Value);
            }
        }

该文件位于:> C:/Users/Desktop/Assign/obj/Debug/buildings.kml所以我看不到问题。在Visual Studio之外,我可以很好地阅读.xml文件。

希望有人能帮忙

编辑:

新代码 -

Dictionary<string, string> getBuildingNames()
    {
        Uri uri = new Uri(@"Data'mydata.kml", UriKind.Relative);
        StreamResourceInfo sri = Application.GetResourceStream(uri);
        StreamReader sr = new StreamReader(sri.Stream);
        var xdoc = XDocument.Load(sr);
        XNamespace kml = "http://www.opengis.net/kml/2.2";
        var dict = xdoc.Descendants(kml + "Placemark")
                      .ToDictionary(d => d.Element(kml + "name").Value,
                      d => d.Element(kml + "id").Value);

        return dict;

    }

错误: - "空引用异常未处理"

Visual Studio 找不到 XML 文件

假设您确实尝试将其作为WP7项目的一部分(而不是与之相关的非移动项目,例如预处理),则不应使用File.OpenText

选项:

  • 将 XML 包含在 XAP 文件中,并使用 Application.GetResourceStream 从中读取(有关详细信息,请参阅此博客文章)
  • 以某种方式将 XML 放入独立存储,并使用独立存储 API
  • 将资源嵌入到程序集中,并使用 Assembly.GetManifestResourceStream

还有一些技巧可以帮助您:

1) 将 xml 文件的"生成操作"属性更改为"内容"。(选择该文件并转到 Visual Studio 中的属性窗口)

2)如果您只想从文件中读取,则无需将文件保存在隔离存储中。如果正确设置了"生成操作"属性,则只需阅读即可。

您可以使用 XDocument 来读取文件。

XDocument xdoc = XDocument.Load(filepath);

其中 filepath 只是 XML 文件的相对路径,即如果您没有将其放置在项目的任何文件夹中,那么它将只是文件名(假设它是根目录)