2011-04-29 53 views
1

爲什麼我不能在XBox360遊戲中使用常規類庫?我想在XBox360上使用常規類庫!

我有應用程序邏輯,我想保持獨立於XNA並在WPF和XNA應用程序中使用。

有誰知道在XBox/Phone7應用程序和「常規」Windows應用程序之間共享代碼的良好做法嗎?

+0

使用XNA Game Studio,我能夠在PC,XBox360和WP7之間共享我的圖書館項目,沒有任何問題。唯一的技巧是在遊戲項目中使用庫*項目*,而不是DLL。 – jv42 2011-05-01 09:24:46

回答

4

看一看便攜式類庫:http://msdn.microsoft.com/en-us/library/gg597391.aspx

使用便攜式類庫 項目,你可以構建便攜 組件,如果沒有 修改基於.NET Framework,Silverlight的 工作,Windows Phone 7的,或XNA (Xbox)平臺。如果沒有Portable Library項目,您必須將目標設爲 單個平臺,然後手動 將其他 平臺的類庫重新修改。便攜式類庫 項目支持 組件從這些平臺的一個子集,並提供 一個Visual Studio模板 能夠構建組件 ,如果沒有這些 平臺加修改地運行。

+0

聽起來像是比我更好的解決方案 - 我沒有意識到這存在!看起來這些類型的項目有一些限制,但如果你可以使用它,這是一個更好的方法。 – 2011-04-29 09:50:47

+0

謝謝,很好的解決方案!我目前正在將所有東西都移動到可移植的庫 - 不幸的是,我的序列化不再受支持。任何我應該使用的序列化方法的經驗? XML序列化? – Max 2011-04-29 14:24:46

+0

如果在Portable Class Libraries中不支持某些東西,那麼可以嘗試將鏡像XNA項目(如Andrew Russel的答案中所述)和鏈接文件組合到Silverlight項目(我的回答) – 2011-04-30 10:29:15

1

編輯:查看JoDG's answer獲得更好的解決方案。

你可以嘗試鏈接的文件...

在您的Xbox項目,右擊 - >添加現有文件,然後選擇文件(S)後,點擊小下拉箭頭「添加「按鈕,然後點擊‘添加鏈接’,如下圖所示:

Add As Link

,如果你需要共享不僅僅是文件的更多,這可能無法正常工作,但它是共享代碼的簡單方法。

1

JoDG的答案可能是最實用的。但只是爲了提供更多信息:

爲什麼我不能在XBox360遊戲中使用常規類庫?

因爲不同的XNA平臺針對不同版本的.NET框架。

XNA Game Studio本身提供了一種機制(documented heremore info here),用於在兩個項目之間自動鏡像項目的源文件。該機制可用於爲每個平臺以及遊戲項目創建圖書館項目的副本。

對於與XNA相關的工作,這是創建跨平臺庫的首選方法。當你還必須讓你的圖書館在WPF上工作時,你必須採取額外的步驟:

在Windows上,XNA遊戲就像任何其他.NET應用程序一樣,Windows的XNA庫就像任何其他.NET圖書館。除了因爲它們引用了XNA程序集。因此,您的WPF應用程序可以引用Windows版本的XNA庫。但是,如果您希望您的應用程序在未安裝XNA的系統上運行,則需要刪除 XNA程序庫的Windows項目中的XNA程序集引用。

XNA Game Studio仍然會爲您反映Windows庫和Xbox 360庫之間的變化。

+0

謝謝! – Max 2011-04-29 14:25:23