禁用vs2010 XNA内容管道警告

时间:2013-01-31 20:49:51

标签: c# xna

我正在使用XNA构建游戏,我的游戏级别有自定义文件格式。我想加载它们并自己解析它们,而不使用XNA的内容管道。我有这么多工作,通过将文件添加到Content项目,我甚至可以在Visual Studio中编辑它们(我也想要)。

问题:我收到一条警告,指出“项目项'item.lvl'不是使用XNA Framework内容管道构建的。将其Build Action属性设置为Compile以构建它。”

我不希望XNA编译它,因为我正在进行自己的解析。如何禁用警告?

2 个答案:

答案 0 :(得分:4)

将文件的Build Action设置为None,然后将其设置为Copy if newer。这将导致文件被写入正确的输出目录而不通过内容管道。

答案 1 :(得分:1)

解决方案可以创建自定义内容导入器,如下所述:Creating a Custom Importer and Processor。要创建简单的内容导入器,您必须从ContentImporter<T>(抽象类)继承您的类并覆盖Import()方法。

以下是msdn:

中的一个简单示例
//...
using Microsoft.Xna.Framework.Content.Pipeline;

class PSSourceCode
{
    const string techniqueCode = "{ pass p0 { PixelShader = compile ps_2_0 main(); } }";

    public PSSourceCode(string sourceCode, string techniqueName)
    {
        this.sourceCode = sourceCode + "\ntechnique " + techniqueName + techniqueCode;
    }

    private string sourceCode;
    public string SourceCode { get { return sourceCode; } }
}

[ContentImporter(".psh", DefaultProcessor = "PSProcessor", DisplayName = "Pixel Shader Importer")]
class PSImporter : ContentImporter<PSSourceCode>
{
    public override PSSourceCode Import(string filename, 
        ContentImporterContext context)
    {
        string sourceCode = System.IO.File.ReadAllText(filename);
        return new PSSourceCode(sourceCode, System.IO.Path.GetFileNameWithoutExtension(filename));
    }
}