2017-02-21 22 views
0

Я получаю эту ошибку на сборке Release, когда я использую обфускатор (.NET Reactor):получение ошибки MSB4018: задача «LinkAssemblies» неожиданно завершилась. для Xamarin Android в Visual Studio 2015

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: задача «LinkAssemblies» неожиданно завершилась.

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: System.ArgumentException: Пустое имя

1 > C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Mono.Cecil.Mixin.CheckName (имя String)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Mono.Cecil.ModuleDefinition.GetType (String имен, имя String)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Mono.Cecil .MetadataResolver.GetTypeDefinition (модуль ModuleDefinition, тип TypeReference)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018 : at Mono.Cecil.MetadataResolver.GetType (ModuleDefinition module, Тип ссылки)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Mono.Cecil.MetadataResolver.Resolve (TypeReference типа)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Mono.Cecil.ModuleDefinition.Resolve (TypeReference тип)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Мо no.Cecil.TypeReference.Resolve()

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Mono.Linker.Steps.SweepStep.ResolveAllTypeReferences (AssemblyDefinition монтаж)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Mono.Linker.Steps.SweepStep.Process()

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ An droid \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: на Mono.Linker.Steps.BaseStep.Процесс (LinkContext контекст)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Mono.Linker. Pipeline.Process (контекст LinkContext)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в MonoDroid.Tuner .Linker.Process (LinkerOptions options, LinkContext &)

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Xamarin.Android.Tasks.LinkAssemblies.Execute()

1> C: \ Program Файлы (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()

1> C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets (1586,5): ошибка MSB4018: в Microsoft.Build.BackEnd.TaskBuilder.d__26 .MoveNext()

Я использую Visual Studio 2015 с расширением Xamarin для Visual Studio v4.2.2.11 (файл Xamarin.VisualStudio_4.2.2.11.msi), Xamarin Android v7.0.2.42, MSBuild 2015 и .NET Реактор. Проект настроен на использование .NET FX v4.6.1 и Android Target v5.1 (API 22) и минимальной версии v4.4 (API 19).

С тех пор как я получил это в своем проекте, я протестировал это, создав пустой проект Android без добавления какого-либо кода, просто код, созданный новым пустым проектом (нажмите кнопку), чтобы ссылки на библиотеки DLL или Сторонние компоненты.

С уважением,

NCruz

+0

Обновление: Я отредактировал версию Xamarin Android, поскольку я изначально заявил, что это v4.2.2.11, которая была версией расширения Xamarin для Visual Studio. Правильная версия Xamarin Android, которую я использую, - v7.0.2.42 – ncruz

+0

Вам лучше обратиться в службу поддержки Xamarin. Стек вызова показывает проблему Mono.Cecil, поэтому он должен быть связан с сборками, которые вы добавили в качестве ссылок. Если они были запутаны определенным образом, такие проблемы ожидаются. –

+0

Я связался с поддержкой Xamarin, и человек сказал, что у них нет технической поддержки/dev, поскольку они были поглощены командой Visual Studio. Я не добавлял ссылок на сборку - это пустой проект Android без добавления кода, просто нажал на «Новый проект» и выбрал «Blank Android Project». Что Mono.Cecil работает со ссылками на сборку? Я заметил, что в стеке вызовов есть ошибка «System.ArgumentException: Empty name» в Mono.Cecil.Mixin.CheckName (имя строки). – ncruz

ответ

0

Я кредит это ответ на Lex Ли, который указал, что я должен попытаться отключить каждой из функций запутывания, и посмотреть, что вызывает вопрос компоновщика. Есть несколько переключателей командной строки, которые я использую для активации определенных функций обфускации следующим образом: -suppressildasm 1 -obfuscation 1 -stringencryption 1 -antitamp 1 ..etc. Сначала я удалил/удалил все из командной строки, но у нее все еще была ошибка. Затем я положил их обратно и вместо 0 вместо 1 (-suppressildasm 0) деактивировал каждую функцию. Функция suppressildasm была причиной ошибки.