将2D XNA 4.0项目转换为silverlight 5.0

将2D XNA 4.0项目转换为silverlight 5.0,silverlight,xna,xna-4.0,Silverlight,Xna,Xna 4.0,我继续学习教程,排除了一些预期的问题(颜色等)。但还有一个编译错误: 错误2“c:\Program Files(x86)中都存在类型“Microsoft.Xna.Framework.Graphics.VertexDeclaration”\参考Assemblies\Microsoft\Framework\Silverlight\v5.0\Microsoft.Xna.Framework.Graphics.dll'和'C:\Users\Brandon\Desktop\SilverSprite.dll'

我继续学习教程,排除了一些预期的问题(颜色等)。但还有一个编译错误:

错误2“c:\Program Files(x86)中都存在类型“Microsoft.Xna.Framework.Graphics.VertexDeclaration”\参考Assemblies\Microsoft\Framework\Silverlight\v5.0\Microsoft.Xna.Framework.Graphics.dll'和'C:\Users\Brandon\Desktop\SilverSprite.dll'C:\Users\Brandon\Desktop\Projects\Other Projects\Game Jam prac\Silverlight3dApp1\Silverlight3dApp1\silverlight3dappp\verexpositioncolornormal.cs 31


我已经搜索了一个多小时,但找不到解决方案。

错误的意思正是它所说的:有一个类型,
VertexDeclaration
,它由Silverlight和SilverSprite定义。当您的项目试图解决使用哪一个时,它无法决定

银精灵是,而且一直是,一种马车。这似乎是SilverSprite中的一个bug。它来自,它包含一个声明
VertexDeclaration
,这是实际的API

幸运的是,您不必自己实现它——因为Silverlight提供了它。我建议您下载SilverSprite源代码,并将其作为项目包含在解决方案中,并引用它而不是DLL(即:从源代码自己构建SilverSprite)。然后,您可以轻松地修改它,并简单地删除伪造的类型定义-然后您的代码将自动使用真实的类型定义

如果你遇到任何其他错误,我建议你看看。我上次尝试使用SilverSprite时成功了(虽然这是在Silverlight 5之前),并且修复了很多很多bug。您可能会发现从中回收代码很有用