【问题标题】:Problem with using IntermediateSerializer outside an XNA project在 XNA 项目之外使用 IntermediateSerializer 的问题
【发布时间】:2011-06-07 04:32:01
【问题描述】:

我目前正在开发一款 Xbox360 游戏。在这个游戏中,我有很多以 XML 格式存储的数据。在 XNA Game 项目中通过 IntermediateSerializer 反序列化它是没有问题的,就像一个魅力。但是由于这些存储在 XML 中的结构可能非常复杂,我决定为这些东西制作一个简单的编辑器,因此我(或者可能是经验不足的用户)可以直观地编辑对象(动画、游戏阶段等),而不必编写这些XML 格式的数据。然后我会通过 IntermediateSerializer 对其进行序列化,一切都会好起来的。

对于这个编辑器,我创建了一个 WPF 项目,并引用了 Microsoft.Xna.Framework.Content.Pipeline.dll

Visual Studio 可以识别 IntermediateSerializer 类,并且 intellisense 建议使用 Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate 命名空间,但我不断收到以下错误消息:

命名空间“Microsoft.Xna.Framework.Content”中不存在类型或命名空间名称“管道”(您是否缺少程序集引用?)

(我使用的是 XNA 4.0 和 .NET 4)

是我做错了什么还是这根本不可能?

天色子

【问题讨论】:

    标签: wpf xml-serialization xna


    【解决方案1】:

    在您的应用程序属性中确保 目标框架设置为 .NET 框架 4.

    默认情况下,新的 WPF 应用程序以 .NET Framework 4 客户端配置文件为目标。客户端配置文件旨在为最终用户减少 .NET Framework 的下载大小,并排除仅用于开发的程序集。在您的情况下,Microsoft.Xna.Framework.Content.Pipeline.dll 取决于客户端配置文件中不可用的 Microsoft.Build.Framework 和 Microsoft.Build.Utilities.v4.0。

    【讨论】:

    • 这是一个令人满意的答案,谢谢。但是还有一点我不应该忽略:虽然 MSDN 只提到了 Microsoft.Xna.Framework.Content.Pipeline.dll,但命名空间被划分为其他几个程序集,我也需要使用它们!
    【解决方案2】:

    在我看来,您确实将 WPF 应用程序的目标框架设置为“.NET Framework 4”。它必须提供帮助。

    【讨论】:

    • 我还有一个“Xbox360 库”项目,我在 WPF 项目中使用它(并且它有效),所以我尝试将整个序列化方法移到那里,但我也有同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 2017-10-29
    • 2012-03-27
    • 1970-01-01
    相关资源
    最近更新 更多