2016-06-16 15 views
1

Monogame(3.5)の最新バージョンをダウンロードしましたが、突然XNAであいまいな参照があります。私が以前に持っていたバージョンは分かりませんが、それが数年経っていると言えば十分です。Monogameのアップグレード:MonogameとXNAの両方にタイプがあります

Visual Studioでアセンブリ参照を追加および削除しようとしましたが、これは異なるエラーのみを生成します。次のタイプのために、私はこれらを取得しています

Error 12 The type 'Microsoft.Xna.Framework.Graphics.Texture2D' exists in both 'C:\Program Files (x86)\MonoGame\v3.0\Assemblies\WindowsPhone\x86\MonoGame.Framework.dll' and 'C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Graphics.dll' c:\nightmare games\games\in production\boxland incorporated\boxland (monogame)\boxland\character_control.cs 55 

はここで正確なメッセージ(そのうちの一つ)だ

  • にTexture2D
  • のGraphicsDevice
  • Vector4
  • MathHelper

UPDATE:

私はMonogameを使用して、プロジェクトからXNAを削除しようとしました。

  • にTexture2D
  • ゲーム
  • GameTime
  • SpriteBatch
  • とSoundEffect
  • :アセンブリ参照を削除し、文を "使用する" 次のタイプのエラーが見つかりません "型または名前空間" を多数結果
  • その他多くのもの

私はすでに持っていますMonoGame.Frameworkへのアセンブリ参照。

Error 4 The type or namespace name 'MonoGame' could not be found (are you missing a using directive or an assembly reference?) C:\Nightmare Games\Games\In Production\Boxland Incorporated\Boxland (monogame)\Boxland\Particle_Effects.cs 5 

UPDATE:MonoGameのための新たなusingステートメントを追加するだけでエラーになった - >プロパティ -

プロジェクト "の.NET Framework 4" からこれを変更する>ターゲットフレームワーク への" .NET Frameworkの4.5 "は認識されないMicrosoft.XNAの問題を修正するようだが、これは新しいエラーのみを生成した。

Error 2 The type or namespace name 'Graphics' does not exist in the namespace 'Microsoft.Xna.Framework' (are you missing an assembly reference?) C:\Nightmare Games\Games\In Production\Boxland Incorporated\Boxland (monogame)\Boxland\Draw.cs 4 

私は今ようにグラフィックス、入力、オーディオ、コンテンツ、GamerServices、および含め、Microsoft.Xna.Frameworkの傘の下にすべてのためにこれを取得しています。

+0

XNAとMonoGameの両方を同じプロジェクトで参照したいのはなぜですか? –

+0

私はしばしば自分自身を疑問に思っていましたが、Monogameは当初、プロジェクトにインストールされ参照されていたXNAフレームワークを必要としていました。それはもっと最近のバージョンでは変更されている可能性がありますが、Webサイトのドキュメントは最低限必要としています。 –

+0

あなたは本当にMonogameが今必要なのです。参照を削除し、それは私が約束うまく動作します! –

答えて

2

すべては現在(ほとんど)動作します。残念ながら、これは迅速な修正ではありませんでした。ここで私はこの作業を取得するために行ったすべてのリストです:

プロジェクト - >プロパティ - >ターゲットフレームワーク:

これは、「。NET Frameworkの4.5" に設定する必要があります。私は私が以前は4.0だったと思う。

usingステートメント

はすべて "使用Microsoft.Xna.Framework" ステートメントを保管してください。しかし、 "Microsoft.Xna.Framework.GamerServices"が必要です。これは明らかにサポートされなくなりました(そして、私が何をもっと長く使っているか分かりません)。 「Microsoft.Xna.Framework」を追加しようとする試みも悪い考えです。

私はMonogameに間違ったアセンブリ参照がありました。

リファレンスマネージャが14個を表示しているため、これは難しいですが、バージョン番号を持つ「MonoGame.Framework」以上のものはありません。明らかにそれらはすべて同じではありません。名前の上にカーソルを置くと、別のファイルパスが表示されます。私はまだWindows、Windows8、WindowsUniversalの違いを知ることはできませんが、私が実際に必要としていたものは検索結果に表示されていませんでした。私は通常のWindowsデスクトップのためだった実際のファイルに閲覧していた下: C:\プログラムファイル(x86の)\ MonoGame \ v3.0の\アセンブリ\ WINDOWS \ MonoGame.Framework.dll

FileMode.Openもはや動作しません。

これはSystem.IOの一部で、Monogameと競合しているようです。解決策は、 "Content.Load"を使用することです。これは、XNAがそれを行うために使用した方法です。

以前のMonogameはコンテンツのコンパイルをサポートしていなかったので、FileMode.Openを使用してTexture2Dをロードしていました。皮肉なことに、これが今サポートされていることを知ることはアップグレードの主な理由でしたが、ほぼ400のスプライトを一度に新しいフォーマットに変換するとは思いませんでした。それらはすべて新しいパイプラインツールにロードされ、コンパイルされ、VSプロジェクトに追加され、実際のロードコードが変更される必要があります。

私はその間に書いたクラスのいくつかを無効にしました。なぜなら、Monogameはメインゲームクラスの外からGraphicsDeviceを使用しようと思っていないようです。これらはまた、大幅にリファクタリングされなければならなかった。

+0

タイプがほとんど実装されていないので、 'GamerServices'ネームスペースは別々の' MonoGame.Framework.Net'アセンブリに移動されました( 'Guide'とiOS Game Centerインターフェースのために保存されています。 –

0

プロジェクトと参照されているすべてのアセンブリは、MonoGameのみを参照する必要があります。 MonoGameはXNAの完全な置き換えであり、ほぼすべてのXNA 4.0タイプを実装しています。これらの2つは、1つのアプリケーションでは共存できません。

+0

私は今夜XNAの参照を削除し、Visual Studioが何を言っているかを見てみましょう。更新後、私はXNAがプロジェクトから削除されていることに気がつきました。その不在が原因でいくつかのエラーが発生しました。それが原因です。 –

+0

これは機能しませんでした。 XNAへの参照を削除すると、XNAの "using"ステートメントも削除する必要がありました。これにより、複数の型の定義が失われました。 MonoGame.Frameworkのステートメントを使用して追加しましたが、アセンブリ参照が明確に存在するにもかかわらず、タイプまたは名前空間 'MonoGame'を見つけることができません。 –

+1

元の 'using'ステートメントを保持します。 MonoGameは 'Microsoft.Xna.Framework。*'名前空間を実装しますが、 'MonoGame.Framework'名前空間は内部的なものにしか使われません。 MonoGameへのアセンブリ参照で十分です。 –

関連する問題