2013-03-09 91 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(如何執行文件夾,以及兩種可用的嵌入方式)中的信息結合起來,可能會有一些運氣。

相關問題