2012-03-01 14 views
1

ここで私はベストプラクティスを探しています。MonoTouch:サブプロジェクトでのDLL参照の追加

多くのアプリで共通のプロジェクトがあります。このプロジェクトにはFlurryAnaylicsとATMHud DLLが参照として用意されています。

メインプロジェクトでこれらのDLLも参照していない場合は、アプリはデバッグからデバイスへのテストで失敗することはよくありますが、必ずしもそうとは限りません。シミュレータデバッグでは、これらのDLLをメインプロジェクトに追加する必要はありません。

質問は次のとおりです。私は、サブプロジェクトに常駐しているメインプロジェクトにDLLへの参照をすべて含める必要がありますか?

+1

それが失敗すると、それはどうして失敗しますか?もう少し説明できますか? –

+0

デバッグ中のデバイス上でアプリが起動して爆発する。コンソールはクラッシュ通知をダンプするだけで、デバッグ情報はダンプしません。 –

答えて

1

可能な限り、私はアセンブリ(.dll)への参照よりもプロジェクトファイル(csprojファイル)への参照を使用します。それは多くのことをより簡単にします:

  • コードナビゲーション(IDE);
  • 自動ビルド依存関係(あなたが読んでいるソースコードはビルドしているものであり、潜在的に同期外れのものではありません)。
  • ソースレベルのデバッグ(これがなくても、同期していることは確かです)。
  • デバッグ|リリース| ...設定間の(より簡単な)スイッチ。
  • 変更定義(またはプロジェクトレベルのオプション)。

など。

Solution1.sln

  • Project1a.csproj
  • MonoTouch.Dialog.csproj(../Common/MonoTouch.Dialog.csprojへのリンク)

Solution2.sln

  • Project2a.csp roj
  • MonoTouch.Dialog.csproj(../Common/MonoTouch.Dialog.csprojへのリンク)

Common.sln

  • MonoTouch.Dialog.csproj

大規模なソリューションでは、これを行うことでパフォーマンスが向上し、ファイルを検索することが少し難しくなる可能性があります。彼らが大きくなるほど、誰もがそのすべての部分について知っている可能性は低くなります。したがって、各プロジェクトが追加されるにつれて、不都合が増す一方で、利点のリターンが減少します。

など。アセンブリへの参照を使用した作業あなたが発生することはありません。私はMonoTouchで;-)

のすべてのSDKアセンブリと一緒に暮らすことができ、モノ内部のすべてのフレームワークアセンブリへの参照(個人的にを持っているのは嫌ですデバイス上でデバッグ中にランダムエラーが発生しました。そのようなテストケースを作成できる場合バグレポートを記入してください:

+0

バグかどうかはわかりませんが、メインプロジェクトにATMHud.dllとFlurryAnalytics.dllを含めないと失敗します。これらへの参照を追加する(私はソースを持っていません)、問題はなくなります。 –

+0

MonoDevelopのサブプロジェクトへの参照をどのように追加しますか? Visual Studioで私は "オープンソリューション"を開いて、開いているパネルの "現在のソリューションに追加"ボックスをチェックします。 MonoDevelopでこの操作を行う方法はわかりません。 –

関連する問題