kmycode / mastoom

Mastodon cross-platform client
MIT License
9 stars 2 forks source link

MastoomXF.PCL vs MastoomXF.Shared #4

Open amay077 opened 7 years ago

amay077 commented 7 years ago

https://github.com/kmycode/mastoom/pull/2#issuecomment-296975013

より。

簡単に MastoomXF.Shared にできるかなーとやってみたのですが、

MastoomXF.Shared から Mastoom.Shared を参照できない

でさっそくハマりました 😰

amay077 commented 7 years ago

c# - How do I add a reference to a Shared Code project (.shproj) from another project - Stack Overflow

によると、 shared to shared はできるらしいし Visual Studio の Extension があるようですね。

kmycode commented 7 years ago

MastoomXF.DroidからMastoomXF.SharedとMastoom.Sharedを参照 MastoomXF.iOSからMastoomXF.SharedとMastoom.Sharedを参照 みたいな感じでいけるかと~ 実際、今までそうしてました。

Shared同士はできないって認識でしたが、できるとのこと、ちょっと調べてみますね、ほかってから

追記: まだどのプロジェクトとも関連付けられていない共有プロジェクトで試してて思ったことですが、 共有プロジェクトは実体がなく、他の実体のあるプロジェクトと関連付けられて初めて走るものだと思います。。

kmycode commented 7 years ago

How do I add a reference to a Shared Code project (.shproj) from another project

Visual Studio 2017 Communityで試してみました。 共有プロジェクトAとBが存在し、AからBを一方的に参照するようにしました。

1. このように、1つのプロジェクトの中に2つのプロジェクトフォルダが存在する状態になります。 これではプロジェクトとフォルダの見分けがつかず、保守性を考えると比較的危険な状態です。 image

2. Aにクラスを追加しようとすると、以下のエラーメッセージが表示され、クラス追加ができない状態です。コーディングは実質的に不可能です。 image

3. コンパイル可能なプロジェクト(今回の場合はコンソールアプリ)で、参照を追加しようとすると、 共有プロジェクトを選ぶ以前に、参照先選択ダイアログを表示しようとしただけで以下のエラーが表示されます。 image

これらの事情により、Visual Studioでは共有プロジェクト同士の参照は実質的に不可能です。 何か他に解決策が欲しい感じです。