Visual studio 2010 XNA.xnb资源可以嵌入到exe或dll中吗?

Visual studio 2010 XNA.xnb资源可以嵌入到exe或dll中吗?,visual-studio-2010,xna,xna-4.0,embedded-resource,Visual Studio 2010,Xna,Xna 4.0,Embedded Resource,XNA内容管道生成的.xnb资源文件是否可以嵌入到应用程序(exe)或库(dll)中,而不是作为松散文件转储到“内容”文件夹中 如果是这样的话,这个过程可以作为常规构建过程的一部分自动化吗?是的,您可以这样做。事实上,框架中内置了执行此操作的功能(ResourceContentManager) 描述如何执行此操作 (重要的是要注意,通过将资源嵌入程序集,它们将在加载程序集时一次加载到内存中!对于某些必须从磁盘流式传输的资源类型,它也不起作用。) 实现自动化更为棘手。该博客文章中描述的方法要求您构

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


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

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

描述如何执行此操作

(重要的是要注意,通过将资源嵌入程序集,它们将在加载程序集时一次加载到内存中!对于某些必须从磁盘流式传输的资源类型,它也不起作用。)

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


如果要删除此步骤,则需要稍微修改一下MSBuild。我认为,如果您尝试将信息组合在(解释如何在MSBuild中使用通配符)和(如何使用文件夹以及两种可用的嵌入)中,您可能会有一些运气。

您可以将所有内容压缩到一个归档文件中,并在应用程序启动时将其解压缩到内存中并从中读取。许多游戏使用
.big
等文件,这些文件实际上是存档文件(暗黑破坏神2使用MPQ)。我不知道如何在构建过程中自动执行,但您可以肯定地将xnb文件包含在可执行文件或dll中。