2016-04-13 11 views
4

VisualStudio 2015、Xamarin、MonoGame 3.5をインストールしました。 Windows UWP、iOS、Android用のXNAアプリケーションをビルドします。UWP、iOS、およびAndroidから使用するMonoGameに基づいてクラスライブラリを作成する方法

私はXNAベースのライブラリをいくつか持っていますが、3つのターゲットシステム(Windows UWP、iOS、Android)用にビルドする必要がありますが、Windows UWPのライブラリを作成する方法はありません。 MonoGame Windows 10 Universal Projectを作成しようとしましたが、このようなプロジェクトを変換してDLLを生成することはできません。

Class Library (Universal Windows)プロジェクトを作成しようとしましたが、参照にMonoGame.Frameworkを追加できませんでした。

MonoGame Android Projectを作成するときに同じ問題が発生しました...ライブラリプロジェクトに切り替えることはできません。ライブラリプロジェクトに変更できる唯一のMonoGameプロジェクトはMonoGame iOS Projectです。

つまり、UWP、iOS、Androidから使用するXNA(MonoGame)に基づいてクラスライブラリを作成するにはどうすればいいですか?

答えて

2

私が知る限り、ここには2つのオプションしかありません。私は本当に多くの共有プロジェクトを使用していない

  • Shared Projects
  • Portable Class Libraries

    • 。私が理解していることは、複数のプロジェクト間でコードを共有できるようにすることです。ライブラリの中にあるかのようにコードを共有できますが、実際に参照プロジェクトに直接コンパイルされます。高度なファイルリンクのように考えることができます。

      ポータブルクラスライブラリは、少し違った獣です。私はMonoGame.Extendedプロジェクトでそれらを使って成功しましたが、それは必ずしも容易ではありませんでした。彼らが働く方法は、すべてのターゲットプラットフォームで機能する機能のサブセットを提供することです。それらはプロジェクトのいずれかで参照できるDLLにコンパイルされ、コードが同じであると確信することができます。

      PCLを使用しての欠点がいくつかあります:

      • あなただけの機能のサブセットを使用することができます。驚いたことに、これはあまりにも頻繁に起こることはありません。
      • PCLが別のライブラリを参照する場合は、PCLでなければなりません。

      2番目の点は、MonoGameでややこしいことです。通常、MonoGameはPCLとして出荷されませんが、使用できるPCLバージョンはpublished on NuGetです。

      NuGetパッケージは公式リリースの裏にあるバージョンですが、意外にも、それは基本的に実行時に使用される実際のDLLへのインターフェイスを提供することを意味するbait and switch PCLであるため重要ではありません。言い換えれば、インターフェイスが変更されていない限り、PCLがバージョン3.2であっても、あなたのゲームはまだバージョン3.5を喜んで参照します。

      バージョン3.6ではこの状況を改善するためにsome talkがあります。

    +0

    3.6が出ているので、状況は改善されていますか? – PJvG

    +1

    はい、状況は改善しましたが、私が言ったように、とにかくそれほど問題はありません。 PCLのバージョンはうまく動作し、常にそれを追加するだけです。 – craftworkgames

    0

    MonoGameプロジェクトは、デフォルトで.Net 4.5を使用してビルドされています。正規のクラスライブラリは、私の場合4.5.2だった.Netの最新のインストールバージョンをデフォルトとしています。私は、そのプロジェクトプロパティに行き、ターゲットフレームワークを4.5に設定することによって、通常のクラスライブラリを参照することができました。お役に立てれば。

    関連する問題