找不到ContentTypeReader

时间:2012-04-08 05:49:10

标签: c# windows xna

我在这个错误上找到了很多线程,但我还没有找到解决方案。我正在使用XNAExpert.com中的许多类库,这些库旨在为蒙皮网格设置动画。我正在使用XNA 4.0,Win Xp和Windows编程游戏。这是完整的错误:

找不到ContentTypeReader SkinnedModel.SkeletonReader,SkinnedModel,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null。

可以找到教程here。以下是SkinnedModel项目中reader类的代码:

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;

namespace SkinnedModel
{
    public class SkeletonReader : ContentTypeReader<Skeleton>
    {
        protected override Skeleton Read(ContentReader input, Skeleton existingInstance)
        {
            List<Bone> boneList = input.ReadObject<List<Bone>>();
            return new Skeleton(boneList);
        }
    }
}

以下是SkinnedModelProcessor项目中writer类的代码:

[ContentTypeWriter]
    public class SkeletonWriter : ContentTypeWriter<Skeleton>
    {
        protected override void Write(ContentWriter output, Skeleton value)
        {
            output.WriteObject(value.BoneList);
        }

        public override string GetRuntimeReader(TargetPlatform targetPlatform)
        {
            return typeof(SkeletonReader).AssemblyQualifiedName;
        }
    } 

正如您所看到的,返回的类型是每个读者的程序集限定名称......是否有人知道我可能遇到问题的另一个原因?

2 个答案:

答案 0 :(得分:2)

我的解决方案是删除ContentTypeReader并创建一个新的。

我的问题似乎是由于有一个镜像项目(我有Windows游戏库和Windows Phone游戏库)。在Windows客户端上,已成功找到ContentReader,但未在Windows Phone客户端上找到。

答案 1 :(得分:0)

当我读到它时,SkeletonReader对SkeletonWriter来说是已知的。我想不出设置项目的有效方法,所以这是真的。

  • 项目主要(链接到内容)
    • SkeletonReader
    • 骨架

  • 项目内容(链接到ContentExtendion)
    • SkeletonFile(处理器设置为SkeletonProcessor)

  • Project ContentExtendion (无法链接循环)
    • SkeletonContent(为作家输入)
    • SkeletonWriter
    • SkeletonProcessor

查看您的ProjectSetup我认为您的程序集未正确链接。 并在GetRuntimeReader中返回一个固定的字符串 - 如果你正确设置项目,你将失去与SkeletonReader的连接。

互联网上有一个quite complete tutorial on the content pipeline