2011-12-21 58 views
3

我正在嘗試使用C#表單創建遊戲編輯器,並且在反序列化時遇到了問題;我無法在表單應用程序中使用內容管道,因爲我甚至沒有選擇向項目添加任何內容引用的選項。我如何使用我的表單應用程序的內容管道?是否有另一種方法來加載和反序列化我的XML內容?以C#形式使用XNA內容管道

回答

1

手動編輯.csproj的文件,並添加下面的第一PropertyGroup部分包含的組件名稱,項目GUID等

<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

你可能還需要添加

<XnaFrameworkVersion>v4.0</XnaFrameworkVersion> 
<XnaPlatform>Windows</XnaPlatform> 

在VS中重新加載項目,你應該可以添加內容引用。

這裏指定的兩個GUID適用於Windows和XNA(Windows)。如果您需要根據項目進行重新定位,以下是some common project type guids(儘管有點過時)的列表。

+0

非常感謝,這似乎工作;但是,反序列化時,我得到以下錯誤:「無法找到System.Int32 []的ContentTypeReader。」我假設我錯過了一個引用或名稱空間,但我不知道是什麼。有任何想法嗎? – Jamie 2011-12-21 21:21:19

0

看一看Winforms Series 2: Content Loading AppHub sample

基本上你加載並調用適當的microsoft.xna.framework.content類來讀取你編譯的xnb文件。

您可以使用microsoft.xna.framework.content.pipeline內的命名空間中的類來創建xnb文件(這是內容項目爲您所做的)。

看到這裏的內容管道的概述:What is the Content Pipeline?


是否有另一種方式來加載和反序列化我的XML內容?

是的,使用任何你想要的序列化.net方法,也許XDocument

+1

如果要在構建時處理所有內容,則winforms1樣本可能是更好的選擇。如果需要在運行時處理任何內容,那麼winforms2樣本就是要走的路。 – 2011-12-21 13:39:47

+0

由於OP詢問是否向他的winforms項目添加了一個內容項目(這將構建資產),我去了第二個樣本。 – 2011-12-21 14:35:17