将Skinned Model样本移植到MonoGame时,未引用的库和不明确的DLL

时间:2014-03-17 15:22:20

标签: c# xna monogame

我正在尝试将Skinned Model动画示例从XNA移植到Monogame,我遇到了几个dll错误。

为了让SkinnedModelProcessor.cs类正常工作,我必须引用内容管道dll,这会产生以下错误:

error CS0012: The type 'Microsoft.Xna.Framework.Matrix' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553'.

还有一些与Matrix结构有关的其他错误。 Matrix得到识别和Intellisensed,但仍然需要其他Matrix类。 (当删除using Microsoft.Xna.Framework.Content.Pipeline.Processors;时,它会选择正确的Matrix类,但不会引用ModelContent类型。

如果我添加程序集,因为错误告诉我,我遇到了大量关于重复数据类型的错误(MonoGame和XNA相互崩溃,因为它们具有相同的名称和命名空间。)。

我在网上找到了编辑.sln文件的解决方案,并将XNA程序集排除在构建事件之外,但它们似乎没有做任何事情。您可以在MSDN上查看示例,没有任何更改为代码,除了SkinnedModelProcessor之外的大多数类都正确编译。有什么帮助吗?

谢谢,

尼克。

1 个答案:

答案 0 :(得分:0)

Monogame在构建项目后不使用XNA程序集。 Skinned模型处理器是XNA程序集,即XNA Content Pipeline的扩展。当您尝试运行已经移植的项目时,游戏正试图访问monogame项目无法支持的XNA程序集。

P.S。您可能已经注意到,monogame项目没有使用XNA内容项目。它有assets文件夹,您可以在其中放置预编译的.xnb内容。因此,没有引用项目的XNA内容程序集。