2017-03-03 8 views
2

XBox Live Unity asset packageをプロジェクトに追加しましたが、Unityでこのエラーが発生しています。それはVisual Studioでは妙には表示されませんが、アプリの実行を停止します。XBox Liveサービスをインポートした後のJSON.netエラー

error CS7069: Reference to type `System.ComponentModel.INotifyPropertyChanging' claims it is defined assembly `System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', but it could not be found 

JObject response = JsonConvert.DeserializeObject(request.text) as JObject; 

要求がユニティWWWオブジェクトであるが、以下のようにエラーが参照線です。 私のアプリでthis asset packageを使用していましたが、XBox Liveにこれのプリコンパイルされたdllが既に含まれているように見えますので、削除しましたか?

+0

ああ...それは面倒です。私はこれもある時点で得た、私はちょうど完全にjson.netを削除し、再びそれをインポートしたと思う。その理由は、 'Xbox live unity asset package'をインポートしたとき、Unityがjson.netのカスタムインポートを上書きするからです。私がjsonのシリアル化を必要としているのであれば、Unityでサポートされていない外部のC#ライブラリを実装するのではなく、組み込みのJsonUtilityを使用します。それは動作しますが、ユニティはそれでうまくいきません。 – Maakep

答えて

1

だから、JObjectのように見えます。あなたはjオブジェクトを使用する場合

public abstract partial class JContainer : JToken, IList<JToken> 

JContainerは次のように定義されている間

public partial class JObject : JContainer, IDictionary<string, JToken>, INotifyPropertyChanged 

JContainerに変更すると、JObjectクラスは次のようにJson.NETに定義されている

1

を変更する任意の更なるコードなしに問題を解決しますUnityはINotifyPropertyChangedの実装を見つけることができると予想していますが、それは見つけることができないようです。

私の最初の仮定は、そのクラスが.NET 2.0サブセットに存在しないことでしたが、(Unity 5.5では)それが利用可能であることを確認しました。もう少し詳しく説明して、使用しているUnityのバージョンを教えてください。

+0

返信いただきありがとうございます。 Unity 5.5.2で構築していますが、XObjectアセットパッケージをインポートする前にJObjectが機能していました。そのパッケージには、OPにリンクされたJSON.netアセットパッケージのライブラリとは別のバージョンが含まれている必要があります。 –

+0

問題の原因となった可能性のある他のパッケージを知っていますか?問題を引き起こした原因を正確に判断できるかどうかを確認することに興味があります。 –

+0

私が知る限り、この1つhttps://www.assetstore.unity3d.com/en/#!/content/11347 –

関連する問題