2012-04-08 3 views
0

Я нашел несколько потоков для этой ошибки, но я не нашел решения. Я использую несколько библиотек классов от XNAExpert.com, которые предназначены для анимации скелетной сетки. Я использую XNA 4.0, Win Xp и игры для программирования для Windows. Вот полная ошибка:Не удалось найти ContentTypeReader

Не удалось найти ContentTypeReader SkinnedModel.SkeletonReader, SkinnedModel, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null.

Учебное пособие можно найти here. Вот код из класса читателя в рамках проекта SkinnedModel:

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:

[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; 
     } 
    } 

Как вы можете видеть тип, возвращаемый квалифицируется Ассамблея Имя для каждого читателя ... Кто-нибудь знает о другой причине, почему у меня могут быть проблемы?

ответ

0

Как я прочитал, SkeletonReader известен SkeletonWriter. Я не могу придумать правильный способ настройки проектов, чтобы это было правдой.

  • Проект Главная (ссылки на контент)
    • SkeletonReader
    • Скелет

  • Проект контента (ссылки на ContentExtendion)
    • SkeletonFile (имеет набор процессора для SkeletonProcessor)

  • Проект ContentExtendion (не может связать круговой)
    • SkeletonContent (вводится для Writer)
    • SkeletonWriter
    • SkeletonProcessor

Посмотрите на свой ProjectSetup. Я думаю, что ваши сборки не связаны правильно. И верните фиксированную строку в GetRuntimeReader - если вы правильно настроите проекты, вы потеряете соединение с SkeletonReader.

На перекрестках есть quite complete tutorial on the content pipeline.

2

Решение для меня было просто удалить ContentTypeReader и создать новый.

Моя проблема, похоже, вызвана зеркальным проектом (у меня была игровая библиотека Windows и игровая библиотека Windows Phone). На клиенте Windows ContentReader был успешно найден, но не на клиенте Windows Phone.

Смежные вопросы