2016-08-22 1 views
1

Monogame v3.5 콘텐츠 파이프 라인 도구를 사용하여 게임용 XML 파일을 만드는 데 문제가 있습니다. 데이터 용으로 특별히 두 가지 프로젝트가 있습니다. 하나는 일반 데이터 클래스 용이고 다른 하나는 특정 데이터 클래스 용입니다. 그런 다음 내 게임을 참조합니다.Monogame 내용 파이프 라인에서 XML 파일을 만들 수 없습니다.

'일반'데이터 클래스를 사용하는 모든 XML 파일은 올바르게 빌드되지만 게임 관련 데이터 클래스를 사용하는 XML 파일은 올바르게 작성되지 않습니다. 내 .mgcontent 프로젝트에서 두 프로젝트 dll 모두에 대한 참조를 추가했습니다. 또한 게임 관련 데이터 프로젝트는 일반 데이터 프로젝트를 참조합니다.

가져 오기 'XmlImporter'예기치 않은 오류가 있었다 : 파이프 라인 도구를 사용하여 구축 할 때

나는 다음과 같은 오류를 얻을! Microsoft.Xna.Framework.Content.Pipeline.InvalidContentException : 위의 실패 파일 형식 'SpaceCardGameData.SpaceBackgroundData'

XML 파일을 확인할 수 없습니다 것은 :

<XnaContent> 
    <Asset Type="SpaceCardGameData.SpaceBackgroundData"> 
     <AsteroidTextureAssets> 
      <Item>Objects\Asteroids\TinyAsteroid</Item> 
      <Item>Objects\Asteroids\SmallAsteroid</Item> 
      <Item>Objects\Asteroids\LargeAsteroid</Item> 
      <Item>Objects\Asteroids\HugeAsteroid</Item> 
     </AsteroidTextureAssets> 
    </Asset> 
</XnaContent> 

및 .cs 파일은 다음과 같습니다

namespace SpaceCardGameData 
{ 
    public class SpaceBackgroundData : BaseData 
    { 
     public List<string> AsteroidTextureAssets { get; set; } 
    } 
} 

(기본 데이터는 템플릿 용 기본 유형으로 사용하는 '일반'프로젝트의 빈 클래스입니다.)

한 프로젝트의 XML 파일이 작동하는 이유는 누구나 알 수 있습니까? 다른 것을보고 싶으면 업로드 할 것입니다. 감사.

+0

다음 게시 할 때 내 솔루션을 참조하십시오. 'XmlInclude'속성을 확인하십시오. http://stackoverflow.com/questions/32700342/serialize-base-class-implementation-for-all-new-properties – jdweng

+0

답변이 MonoGame 콘텐츠 파이프 라인과 관련이없는 것 같습니다. , 그냥 일반적인 XML deserialization. 또한 데이터 파일에 필요한 마크 업 속성이 있어야한다고 생각하지 않으며 오류를 일으키는 원인이라고 생각하지 않습니다. 파이프 라인은 BaseData가 아닌 'SpaceCardGameData.SpaceBackgroundData'유형의 게임 데이터를 찾을 수 없습니다. 수업. –

+0

MonoGame에 대해 잘 모릅니다.하지만 MonoGame이 표준 네트워크 직렬화를 사용하고 있습니다. – jdweng

답변

0

FIXED 작동하지 않는 데이터 파일이있는 프로젝트는 실제 Windows 클래스 라이브러리가 아니라 참조를 추가 할 필요가 없도록 Game.cs 클래스를 삭제 한 Monogame 프로젝트였습니다. 이것은 그것을 깨뜨린 것입니다. 데이터 프로젝트는 반드시 사실 인 클래스 라이브러리 여야합니다.