2017-12-04 8 views
0

に失敗し、私は...アプリケーションの出力に次のエラーを取得するユニティ解像度がリリースモード

それが解決しようとする最初の事だ
Unity.Exceptions.ResolutionFailedException: Resolution of the dependency failed, type = 'Hello.MainPage', name = '(none)'. 

。私は解決された最初のタイプを変更しようとしましたが、それは同じ結果です。だから何らかの理由で、Unityは明らかにリリースモードで動作しません。 (それは過去にありますが。)

私は...以下にダウン

public class MainPage : TabbedPage 
{ 

} 

をメインページを縮小しました...ので、失敗している何のサブ解像度はありません。それは私が前の呼び出しにこれを追加していても...

Container.RegisterType<MainPage>(); 

はなぜ、これはリリースモードではなく、デバッグモードで失敗する可能性がありますが、単純ではないのか?

アプリのメインページプロパティをTabbedPageに設定すると、アプリがクラッシュしません。これは、作業を行う

...

Container.RegisterInstance<string>("I love computers"); 

    string s = Container.Resolve<string>(); 

これは動作しません...これは作業を行い

Container.RegisterType<MainPage>(); 

    MainPage = Container.Resolve<MainPage>(); 

...

MainPage = new MainPage(); 

これは、作業を行います。.. 。

Container.RegisterInstance(new MainPage()); 

    MainPage = Container.Resolve<MainPage>(); 

具体的な型がバンドルに含まれていないかのように、どこかで新しく作成されない限りです。

私は注入されたクラスに[Preserve]属性を追加する必要があるかもしれないと考えましたが、違いはありません。

リンカーを「すべてのアセンブリをリンクする」に設定した結果と思われます。

答えて

0

具体的な種類ごとにInjectionFactoryを使用して、この作業を行っています。すなわち、すべてのタイプの登録は、具体的なタイプのnewを含む。

も持っている必要があります...

[assembly: XamlCompilation(XamlCompilationOptions.Compile)] 

は...他のコンパイラは、コードの後ろからイベントハンドラを削除します!