首页 文章

获取错误MSB4018:“LinkAssemblies”任务意外失败 . 适用于Visual Studio 2015中的Xamarin Android

提问于
浏览
0

当我使用混淆器(.NET Reactor)时,我在Release版本上收到此错误:

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(字符串名称)1> C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(1586,5):错误MSB4018:at Mono.Cecil.ModuleDefinition.GetType(String namespace,String name)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:在Mono.Cecil.MetadataResolver.GetType(ModuleDefinition模块,TypeReference引用)1> C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common .targets(1586,5):错误MSB4018:在Mono.Cecil.MetadataResolver.Resolve(类型引用类型)1> C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(1586,5):错误MSB4018:at Mono.Cecil.ModuleDefinition.Resolve(TypeReference type)1> C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(1586,5):错误MSB4018:at Mono.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 \ Android \ Xamarin.Android.Common.targets(1586,5):错误MSB4018:在Mono.Linker.Steps.BaseStep.Process(LinkContext context)1> C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android .Common.targets(1586,5):错误MSB4018:在Mono.Linker.Pipeline.Process(LinkContext context)1> C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(1586,5):错误MSB4018:在MonoDroid.Tuner.Linker.Process(LinkerOptions选项,LinkContext和上下文)1> C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(1586,5):错误MSB4018:在Xamarin.Android.Tasks.LinkAssemblies.Execute()1> C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin .Android.Common.targets(1586,5):错误MSB4018:在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()

我正在使用带有Xamarin扩展的Visual Studio 2015 for Visual Studio v4.2.2.11(文件Xamarin.VisualStudio_4.2.2.11.msi),Xamarin Android v7.0.2.42,MSBuild 2015和.NET Reactor . Project设置为使用.NET FX v4.6.1和Android Target v5.1(API 22)和最低版本v4.4(API 19) .

由于我在我的项目中得到了这个,我通过创建一个没有添加任何代码的空白Android项目来测试它,只是新的空白项目创建的代码(按钮单击)所以没有对DLL或第三方组件的引用 .

问候,

NCruz

1 回答

  • 0

    我将这个答案归功于Lex Li,他指出我应该尝试禁用每个混淆功能,并查看链接器发出的触发器 . 有几个命令行开关用于激活某些混淆功能,如下所示: -suppressildasm 1 -obfuscation 1 -stringencryption 1 -antitamp 1 ..etc . 首先,我从命令行删除/删除它们但它仍然有错误 . 然后我将它们全部放回去,而是将0而不是1(-suppressildasm 0)设置为停用每个功能 . suppressildasm功能是导致错误的功能 .

相关问题