Visual Studio 2010中SL/XNA解决方案中的不同项目应该包含哪些内容?

Cur*_*ous 2 xna visual-studio windows-phone-7

在Visual Studio 2010中,我创建了一个新的Windows Phone Silverlight和XNA应用程序.它创建的解决方案包含3个项目:

  1. 我的项目
  2. myProjectLib
  3. myProjectLibContent

我可以理解像图片和纹理这样的内容应该放在myProjectLibContent中,但是myProjectLib怎么样,我应该放在那里而不是myProject中的文件夹中?

And*_*ell 5

项目设置的原因只是Visual Studio和XNA Game Studio如何工作的一个怪癖.

所以你从myProject一个Silverlight项目开始.它与您创建的任何Silverlight项目相同 - 除了它还具有对XNA程序集的程序集引用,因此您可以在此项目中编写XNA代码,它将编译得很好.

现在,因为您正在使用XNA,所以您可能希望使用XNA内容管道.因此,您还可以myProjectLibContent在模板中获得XNA Content Pipeline项目().

现在你所要做的就是建立这两个项目,对吗?错误!

首先,XNA Content Pipeline项目是一种特殊的项目.它无法构建自己 - 尝试它 - 尝试右键单击项目并选择"构建" - 选项不存在.

XNA内容管道项目只能从XNA项目构建.Silverlight项目不是 XNA项目.只有XNA项目可以拥有"内容引用" - 然后XNA项目将在自己的构建期间构建.请注意,Silverlight项目没有"内容参考"部分.

因此,XNA库项目存在的唯一原因myProjectLib是充当Silverlight项目和内容项目之间的桥梁.Silverlight项目引用XNA库项目,该项目又构建并包含内容项目.

这意味着您可以安全地忽略XNA库项目并将其留空.

在Windows上这是同样的交易.使用XNA的WinForms项目需要一个XNA库项目才能构建XNA内容项目.