2013-03-09 89 views
2

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

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

+0

您可以将所有内容压缩到一个归档文件中,然后在应用程序中解压缩到内存中,然后从中读取。许多游戏使用'.big'文件等,这些文件实际上是档案(Diablo 2使用MPQ)。 – user1306322 2013-03-09 22:51:55

+0

我不知道如何在构建过程中自动执行此操作,但是您可以将xnb文件绝对包含在可执行文件或dll中。 – annonymously 2013-03-10 06:53:05

回答

2

是的,你可以做到这一点。事实上,这样做的功能(ResourceContentManager)内置在框架中。

This blog post描述了如何去做。 (重要的是要注意,通过将资源嵌入到程序集中 - 当你的程序集被加载时,它们全部都会被加载到内存中;而且它不适用于必须从磁盘流入的某些资源类型。 )

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

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

相关问题