2017-04-26 9 views
1

これはthisと同じ質問ですが、解決策は私には効果がありません。私LinkerPleaseInclude.csは、以下にファイルを持っている:私は、リンカの振る舞いとしてリンク全てを使用していますが、私はLinkerPleaseInclude.csで上記を含むことは取り除かないようにリンカーをほのめかすだろうという印象の下にあったXamarin Linker:タイプMvvmCross.Platform.IoC.MvxPropertyInjectorのデフォルトのコンストラクタが見つかりません

public void Include(MvvmCross.Platform.IoC.MvxPropertyInjector injector) 
{ 
    injector = new MvvmCross.Platform.IoC.MvxPropertyInjector(); 
} 

それを出す。

ないことが重要かどうかわからが、ここではいくつかのプラットフォームの詳細は以下のとおりです。

Xamarin Studioの6.3

MvvmCross 4.4.0

.NETCore UWP 5.3.3

答えて

0

LinkerPleaseInclude.csという名前のファイルそれ自身では何も保存しません。これはMvvmcrossが使用している唯一の規約です。

Includeメソッドを呼び出していない(または保持している)ものがない場合、リンカーは(必要に応じて)それをマークしません。MvxPropertyInjector .ctorはマークされません。

*メソッドに[Preserve]属性を追加すると、リンカーにはそれが含まれていることが保証されます。

+0

'LinkerPleaseInclude'クラスに' [Preserve(AllMembers = true)]属性を追加すると、含まれているすべてのメンバーの問題が解決されました –

+0

うまくいきました。ありがとう。そのファイルにコードを追加する必要があったが、明らかに[Preserve]を必要としない他のいくつかのタイプ/メソッドがあったことは興味深い。 –

+0

他の*使用されている*コードパスが必要なコードに達すると、 '[Preserve]'は必要ありません。リンカースタティックアナライザーはそれらが保持されていることを確認します。 – poupou

関連する問題