2017-10-11 4 views
0

J'ai construit une application Xamarin.Forms et j'ai utilisé Debug pour construire tout ce temps. Tout fonctionne bien.Paquet NuGet manquant dans la version mais compilant

Cependant, aujourd'hui, quand je suis allé construire la version, tout s'est bien passé. Cependant, un élément de menu que je clique sur ー qui devrait ouvrir une boîte de dialogue Acr.UserDialogs, ne ferait rien, peu importe combien de fois j'ai cliqué sur l'élément. Encore une fois, cela fonctionne parfaitement dans la version Debug.

Ma meilleure estimation est la référence Acr.UserDialogs NuGet n'est en quelque sorte pas dans la version Release. Cela semble absurde, mais c'est la seule explication logique que je puisse penser, car toutes les autres options de menu sélectionnables fonctionnent parfaitement (aucune ne crée de dialogues).

J'ai même désinstallé et réinstallé le paquet NuGet sans différence de fonctionnalité. Est-il même possible que cela se produise? Je me souviens avoir dû rétrograder Xamarin.Forms parce que l'écoute des éléments de menu ne fonctionnait pas correctement pour les groupes, mais ce n'est même pas un ListViewGroup, et comme je l'ai dit, les autres éléments de menu fonctionnent correctement.

+0

J'ai remarqué que la dernière version utilise la norme .net. Je me demande si cela a quelque chose à voir avec ça. Quoi qu'il en soit, si vous mettez un autre dialogue natif dans l'événement, vous pouvez voir si le code l'atteint. –

Répondre

1

a trouvé le problème. C'était mon propre idiot.

La ligne qui a créé la boîte de dialogue était dans une tâche qui s'exécutait sur un thread non-UI. Pour une raison quelconque, Debug était d'accord, mais Release ne l'était pas. Une exception a été lancée sur la tâche afin qu'elle ne se termine pas, et c'est pourquoi rien ne s'est produit. J'ai refaçonné le code afin que seuls les éléments qui doivent être exécutés sur un thread différent entrent dans la tâche afin que l'interface utilisateur ne soit pas bloquée.