2013-08-29 8 views
8

私はUnityプロジェクト内にRESTサーバーを構築しようとしています。ナンシーが当然の選択のように思えました。Unity3d内でRESTサーバーを実行する

Internal compiler error. See the console log for more information. output was: 
Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded. 
    at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool) 
    at System.Reflection.Assembly.GetTypes() [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.LoadReferences() [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Compile() [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 

: - 多くの頭痛後でしかし、私はまだトラブルナンシーがユニティMonoランタイム内で実行するために取得を抱えている私は、コンパイルしてXamarinが、ユニティから実行することができます私が資産を使用しようとするwhneむしろ役に立たない出力を提供します私はこのようなことを試してきた唯一の人にはなれず、いくつかのプロジェクトでこれを使用しようとしています。したがって、再利用可能なものを優先させることは誰でも成功しました。私はどんな指針ですか?

私は実際にナンシーを働かせたいのですが、RESTサーバーを簡単に埋め込むという別の方法も同様に価値があります。

+0

ちょっと長いことですが、これは.NETバージョンの問題ではありませんか?私が最後に使ったUnity3dは、Monoのいくつかの2.xバージョンにまだ残っていて、.NET 2.0ランタイムの 'サブセット'を使用すると宣言しました。実際には、後の.NETバージョンのさまざまな機能を使用できることがわかりましたが、すべての機能は使用できません。一方、私が間違っていないのであれば、Nancyは.NET 3.5からの作業を目指しています(古いバージョンではない)。 –

+0

これも見つかりました:http://answers.unity3d.com/questions/636739/reflectiontypeloadexception.html –

答えて

0

this thread on Unity AnswersによるとUnityが使用する.NETのサブセットがSystem.Webのが含まれていなかったので、それが起こったので、プロジェクトにのSystem.Web.dll v2.0.50727のをコピーすると、この問題を解決しました。

しかし、メモリが機能している場合、Unityでオプションを呼び出して、サブセットではなく完全な.NET 2.0ランタイムを使用するようにします。これによって問題も解決される可能性があります。 Unityを使用してからしばらくの間、オプションが削除された可能性があります。

編集:See here「互換性レベル」と呼ばれます。

編集2:Player Settings

0

に私は(受け入れ答えは、右に見える、ユニティ・クライアント内で実行されているhttpサーバを得ることができたことがないですが、私はそれをテストすることが遅すぎた、私を聞かせてそれが動作しないかどうかを知ってください)少なくともモノラルランタイムの必要な部分は除外されていたようです。物事は統一されていないかもしれません5、私は現時点で団結していないので、私は最新ではないと恐れています。

これを念頭に置いて、私が選んだ解決策は、外部サーバーを使用するリッスンhttpクライアントでした。これはうまくいきましたが、必要以上に複雑になりました。

私が後で聞いた他の解決策は、スリフトプロトコルを使用することです。https://github.com/amilstead/unity3d-thrift-twistedに例があります。開始するには十分でなければならず、多種多様な言語でスリフトをサポートしています。イディオムは少しですhttpとは異なりますが、一般的には、埋め込み型httpサーバが必要なほとんどの状況に適しています。

関連する問題