2017-02-21 2 views
0

Je reçois cette erreur Surchauffe de sortie lors de l'utilisation d'un obfuscateur (réacteur .NET):erreur MSB4018: La tâche "LinkAssemblies" a échoué de façon inattendue. pour Xamarin Android dans Visual Studio 2015

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: La tâche "LinkAssemblies" a échoué de façon inattendue.

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: System.ArgumentException: Nom vide

1 > C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Mono.Cecil.Mixin.CheckName (String name)

1> C: \ Fichiers programme (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Mono.Cecil.ModuleDefinition.GetType (chaîneespace de noms, String name)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Mono.Cecil .MetadataResolver.GetTypeDefinition (module ModuleDefinition, type typereference)

1> C: \ Program (x86) \ MSBuild \ Xamarin \ applications \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018 : at Mono.Cecil.MetadataResolver.GetType (Module ModuleDefinition, Référence TypeReference)

1> C: \ Program (x86) \ MSBuild \ Xamarin \ applications \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Mono.Cecil.MetadataResolver.Resolve (type typereference )

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Mono.Cecil.ModuleDefinition.Resolve (typereference Type)

1> C: \ Program (x86) \ MSBuild \ Xamarin \ applications \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Mo no.Cecil.TypeReference.Resolve()

1> C: \ Program (x86) \ MSBuild \ Xamarin \ applications \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Mono.Linker.Steps.SweepStep.ResolveAllTypeReferences (AssemblyDefinition assemblage )

1> C: \ Program (x86) \ MSBuild \ Xamarin \ applications \ Xamarin.Android.Common.targets (1586,5): MSB4018 erreur: à Mono.Linker.Steps.SweepStep.Process()

1> C: \ Program (x86) \ MSBuild \ Xamarin \ An droid \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Mono.Linker.Steps.BaseStep.Le procédé (LinkContext contexte)

1> C: \ Program (x86) \ MSBuild \ Xamarin \ Applications \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Mono.Linker. Pipeline.Process (contexte LinkContext)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à MonoDroid.Tuner .Linker.Process (options LinkerOptions , LinkContext & contexte)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ applications \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Xamarin.Android.Tasks.LinkAssemblies.Execute()

1> C: \ Program Fichiers (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): erreur MSB4018: à Microsoft.Build.BackEnd.TaskBuilder.d__26 .MoveNext()

J'utilise Visual Studio 2015 avec l'extension Xamarin pour v4.2.2.11 Visual Studio (fichier Xamarin.VisualStudio_4.2.2.11.msi), Xamarin Android v7.0.2.42, MSBuild 2015 et .NET Réacteur. Le projet est configuré pour utiliser .NET FX v4.6.1 et Android Target v5.1 (API 22) et la version minimale v4.4 (API 19). Comme je recevais ceci sur mon projet, j'ai testé ceci en créant un projet Android vide sans aucun code ajouté, juste le code créé par le nouveau projet vide (clic de bouton) donc il n'y a aucune référence aux DLL ou Composants tiers.

Cordialement,

NCruz

+0

Mise à jour: J'ai édité la version de Xamarin Android comme je l'avais déclaré à l'origine c'était v4.2.2.11 qui était la version pour l'extension Xamarin pour Visual Studio. La version correcte de Xamarin Android que j'utilise est v7.0.2.42 – ncruz

+0

Vous feriez mieux de contacter le support Xamarin. La pile d'appel affiche un problème Mono.Cecil, il doit donc être lié aux assemblys que vous avez ajoutés en tant que références. S'ils ont été obscurcis d'une certaine manière, de tels problèmes sont attendus. –

+0

J'ai contacté le support Xamarin et la personne a dit qu'elle n'avait pas de support technique/dev car ils ont été intégrés dans l'équipe de Visual Studio. Je n'ai ajouté aucune référence d'assemblage - c'est un projet Android vide sans code ajouté, j'ai cliqué sur 'Nouveau projet' et j'ai choisi 'Projet Android vide'. Que fait Mono.Cecil avec les références d'assemblage? Je remarque que la pile d'appel a une erreur "System.ArgumentException: Empty name" à Mono.Cecil.Mixin.CheckName (nom de chaîne). – ncruz

Répondre

0

crédit I cette réponse à Lex Li qui a fait remarquer que je devrais essayer de désactiver chacune des fonctions de faux-fuyants, et de voir ce qui déclenche le problème de liaison. Il existe plusieurs commutateurs de ligne de commande que j'utilise pour activer certaines fonctions d'obfuscation comme suit: -suppressildasm 1 -obfuscation 1 -stringencryption 1 -antitamp 1 ..etc. Au début, j'ai supprimé/supprimé tous les éléments de la ligne de commande, mais il y avait toujours l'erreur. Ensuite, je les ai tous mis en place et mis à la place 0 au lieu de 1 (-suppressildasm 0) pour désactiver chaque fonction. La fonctionnalité suppressildasm était celle qui provoquait l'erreur.