无法将资产加载为XML文件

时间:2013-12-12 16:26:05

标签: c# xml xna monogame

我已经使用XNA完成了我的项目,我正在尝试使用Monogame进行转换。

我的问题是我无法加载我的XML文件。

错误:Could not load Level asset as a non-content file!

我的代码:file = Content.Load<XmlData[]>(path);

Path =没有扩展名的xml名称文件。 (我试过了)。

class XMLData:

public class XmlData
{
    public int id;
    public int posx;
    public int posy;
    public int rot;
    public int Width;
    public int Height;
}

和我的一些XML文件:

<?xml version="1.0" encoding="utf-8" ?>
  <Asset Type="MyDataTypes.XmlData[]">
    <Item>
      <id>17</id>
      <posx>54</posx>
      <posy>30</posy>
      <rot>90</rot>
      <Width>184</Width>
      <Height>5</Height>
    </Item>

我在XNA上遇到了这样的问题,我不得不将以下行添加到我的XML文件<XnaContent> </XnaContent> 我还必须将XML数据添加为库(即使它只是一个类)。

那么与Monogame的区别是什么?为什么我无法加载此XML文件?在适当的情况下,我的xml文件是一个内容。

感谢您的帮助,我将不胜感激。

编辑:我以为我在这里找到了我的问题 - &gt; <Asset Type="MyDataTypes.XmlData[]"> 我试过<Asset Type="XmlData[]">因为我没有MyDataTypes库了。我也尝试过Content目录和资产目录。什么都没有奏效。我保留这篇帖子更新。

2 个答案:

答案 0 :(得分:0)

您是否尝试将属性文件设置为Copy if newer

答案 1 :(得分:0)

我相信你不能在monogame中这样做,因为它没有将xml转换为xnb文件的内容管道,所以,除非我弄错了,你最好在xna中构建文件并且只需复制将xnb文件放入您的monogame项目并将其设置为“Content”和“Copy if newer”