2016-04-13 35 views
4

用我安裝的VisualStudio 2015年,Xamarin和MonoGame 3.5。我將爲Windows UWP,iOS和Android構建我的XNA應用程序。如何創建一個基於MonoGame一個類庫從UWP,iOS版和Android

我已經基於XNA一些庫...我需要建立他們三個目標系統(UWP的Windows,iOS設備和Android),但沒有辦法爲Windows創建UWP庫。我試圖創建一個MonoGame Windows 10 Universal Project,但這樣的項目無法轉換爲生成DLL。

我也嘗試創建一個Class Library (Universal Windows)項目,但後來我無法將MonoGame.Framework添加到引用。

我創建一個MonoGame Android Project時已經同樣的問題......沒辦法切換到庫項目。唯一可以修改爲圖書館項目的MonoGame項目是MonoGame iOS Project

這麼說,我怎麼可以創建基於XNA(MonoGame)類庫從UWP,iOS版和Android使用?

回答

2

據我所知你在這裏只有2個選項。

我還沒有真正使用共享項目多。我理解他們的方式是,他們允許您在多個項目之間共享代碼,就好像它住在一個庫中一樣,但它實際上是直接編譯到參考項目中的。他們可以被認爲像高級文件鏈接。

便攜式類庫是有點不同的獸。我已經在MonoGame.Extended項目中使用過它們,並取得了巨大成功,但這並不容易。他們的工作方式是提供適用於所有目標平臺的功能子集。它們編譯成一個可以被任何項目引用的DLL,並且你可以確信代碼將是相同的。

有一對夫婦使用PCL的缺點的:

  • 你只能使用一個功能子集。令人驚訝的是,這並不是太頻繁。
  • 如果PCL引用另一個庫,它也必須是PCL。

第二點是事情對於MonoGame有點棘手。通常,MonoGame不作爲PCL出貨,但可以使用的PCL版本爲published on NuGet

因爲它現在代表的NuGet包是正式發佈之後的版本,但令人驚訝的是並不重要,因爲它是一個bait and switch PCL這基本上意味着它只是提供了都在運行時所使用的接口,以真正的DLL 。換句話說,即使PCL是3.2版本,只要界面沒有改變,你的遊戲仍然會很高興地參考3.5版本。

some talk約提高3.6版本的這種情況。

+0

現在3.6了,情況有所改善嗎? – PJvG

+1

是的,事情已經有所改善,但正如我所說,反正無關緊要。 PCL版本運行良好,只需添加即可。 – craftworkgames

0

我注意到MonoGame項目默認使用.Net 4.5構建。常規類庫默認爲最新安裝的.Net版本,在我的情況下是4.5.2。通過轉到其項目屬性並將目標框架設置爲4.5,我能夠引用常規類庫。希望這可以幫助。