4

最新の Xamarin ビルドにアップグレードしたばかりで、すべてのライブラリが参照されていますが、次のエラーが発生し続けます。

エラー CS0012: 型ServiceStack.ServiceHost.IReturn1' は、参照されていないアセンブリで定義されています。アセンブリ 'ServiceStack.Interfaces, Version=3.9.55.0, Culture=neutral, PublicKeyToken=null' (CS0012) (Place.Logic) への参照を追加することを検討してください

エラー CS0012: タイプServiceStack.ServiceHost.IReturn' is defined in an assembly that is not referenced. Consider adding a reference to assemblyServiceStack.Interfaces、バージョン = 3.9.55.0、カルチャ = ニュートラル、PublicKeyToken = null' (CS0012) (Place.Logic)

(モノタッチ DLL のバージョン番号は、リリース ビルドでは間違っていると思います)

****アップデート

コメントとリンク、およびこれから: Xamarin Studio iOS アセンブリ エラー

特定のコマンド ライン ツールを使用しない場合、DLL をソースから再コンパイルする必要があるようです。

残念ながら、Servicestack monotouch ソース ファイルのソース ファイルは不完全で、Servicestack.Text.Monotouch (Load failed) と言い続けています。これらを再コンパイルして公開した人はいますか?

***アップデート

ソース ファイルの monotouch バージョンを追加すると、Xamarin Studio でファイルに互換性がないというエラーが表示されます。Monotouch v1.0 で、同じソリューション ファイル内の参照としてそれらを選択しようとした場合。

***回避策

私の DTO DLL は ServiceStack DLL を参照しており、バージョン管理などの問題を引き起こしていました。そのため、サーバー側のロジックから Xamarin プロジェクトに DTO ソース ファイルを複製することになりました。今のところ動作しますが、同じコードの重複があることに満足していません:(

4

1 に答える 1

1

一般に、MonoTouch プロジェクトは、他の MonoTouch プロジェクトまたはアセンブリの MonoTouch ビルドのみを参照できます。(適切に対象を絞ったポータブル クラス ライブラリの例外を作成できます。)

したがって、アプリが ServiceStack MonoTouch アセンブリを参照していても、DTO プロジェクトが非 MonoTouch ServiceStack アセンブリを参照し、アプリがその DTO プロジェクトを参照している場合でも、説明したように失敗します。

はい、あなたが言及したように、MonoTouch プロジェクトを同じソースの標準プロジェクトと並べて使用するのが一般的です。MonoTouch プロジェクトは、標準プロジェクト内のファイルを参照する単なるシェルです。(これらのプロジェクトの同期を維持する方法は複数あり、これは継続的な開発の領域です。たとえば、1 つのトリックは、.csproj ファイルでワイルドカードを使用することです)。

最後に、クライアント アプリで参照する ServiceStack のバージョンは、サーバー プロジェクトで参照される ServiceStack のバージョンと厳密に一致する必要はないことに注意してください。ServiceStack がサービス URL を解決し、DTO をシリアル化/逆シリアル化する規則は、かなり安定しています。したがって、クライアントをアップグレードせずに、サーバー上の ServiceStack をアップグレードできます。

于 2013-08-07T17:14:47.140 に答える