【问题标题】:Can XNA .xnb resources be embedded into an exe or dll?XNA .xnb 资源可以嵌入到 exe 或 dll 中吗?
【发布时间】:2013-02-25 07:12:09
【问题描述】:

XNA 内容管道生成的 .xnb 资源文件能否嵌入到应用程序 (exe) 或库 (dll) 中,而不是作为松散文件转储到“内容”文件夹中?

如果可以,这个过程是否可以作为常规构建过程的一部分自动化?

【问题讨论】:

  • 您可以将所有内容压缩到一个存档文件中,然后在应用程序启动时将其解压缩到内存中并从那里读取。很多游戏使用.big文件之类的,实际上是存档(暗黑破坏神2使用了MPQ)。
  • 我不知道在构建过程中自动执行它,但您绝对可以在可执行文件或 dll 中包含 xnb 文件。

标签: visual-studio-2010 xna xna-4.0 embedded-resource


【解决方案1】:

是的,您可以这样做。事实上,框架中内置了执行此操作的功能 (ResourceContentManager)。

This blog post 描述了如何做到这一点。

(重要的是要注意,通过将资源嵌入到程序集中 - 当您的程序集被加载时,它们都会一键加载到内存中!此外,它不适用于某些必须从磁盘流式传输的资源类型。)

自动化比较棘手。该博客文章中描述的方法要求您构建一次内容,然后将输出 XNB 文件添加到项目中。在这一点上,它应该“正常工作”——尽管 Debug 与 Release 的不同 XNB 输出可能存在问题。

如果您想删除这一步,那么您需要稍微弄乱一下 MSBuild。如果您尝试将this question(解释如何在 MSBuild 中使用通配符)和可能的this question(如何使用文件夹,以及两种可用的嵌入)中的信息结合起来,我认为您可能会有一些运气。

【讨论】:

    猜你喜欢
    • 2017-06-07
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 2012-03-29
    相关资源
    最近更新 更多