Xamarinソリューション内で.NetStandardプロジェクトを参照する場合、プロジェクトのすべてのコードがアプリにコンパイルされますか

AjLearning

これがばかげた質問のように聞こえる場合はお詫び申し上げます。私は物事が内部でどのようにリンク/バンドル/組み立てられるかについてはあまり経験がありません。

始める前に、ドキュメント(https://docs.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/code-sharingなど)を読んで見つけてみたと言いたいです。答えは、しかしできませんでした。

Xamarin.Formsソリューションがあり、.NetStandardプロジェクトを参照している場合:

質問1:このプロジェクトのすべてのコードは、後で分解できるようにコンパイルされてアプリに含まれますか、それとも実際に使用するクラスのコードのみが含まれますか?

もう少し詳しく説明します。
たとえばSchoolIStudent(DIを介して注入する)を期待するStudentクラスと、を実装するクラスがあるとしますIStudentこれらは両方とも、Xamarin.Formsプロジェクトで参照している.NetStandardプロジェクトに存在します。ただし、実際にStudentクラスを使用するだけの場合IStudentIoCコンテナーにtype登録することにより)、Schoolビルドされたアプリにもコードが含まれますか?


質問2:プロジェクトのすべてのコードが含まれている場合、構成設定、属性、サードパーティライブラリ、またはその他の方法で、含める/除外するクラスを強制的に指定する方法はありますか?

ジャンパオロガバ

私の知る限り、NETStandardプロジェクトのすべてがコンパイルされ、アプリに同梱されます。

コンパイルされたアセンブリから未使用のコードを削除する場合は、リンカーを使用する必要があります。すべてをリンクするには、「Sdkとユーザーアセンブリ」を選択する必要があります。

リンカは、使用しているメソッドとフィールドを削除しようとはしませんが、攻撃的すぎることがよくあります(たとえば、リフレクションによってのみ参照されるメソッドは削除されます)。

幸いなことに、リンカーの動作を微調整して機能させる方法はいくつかあります。詳細へのリンク:



この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ