0

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

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:在 Mono.Cecil.ModuleDefinition.GetType(字符串命名空间,字符串名称)

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(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: 在 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 上下文)

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): error MSB4018: at MonoDroid.Tuner.Linker.Process(LinkerOptions options, LinkContext& context)

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。执行()

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

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

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

问候,

克鲁兹

4

1 回答 1

0

我将此答案归功于 Lex Li,他指出我应该尝试禁用每个混淆功能,并查看哪些触发了链接器问题。我使用几个命令行开关来激活某些混淆功能,例如:-suppressildasm 1 -obfuscation 1 -stringencryption 1 -antitamp 1..etc。起初,我从命令行中删除/删除了它们,但它仍然有错误。然后我把它们都放回去,而是用 0 而不是 1 (-suppressildasm 0) 来停用每个功能。抑制功能是导致错误的原因。

于 2017-04-09T01:49:20.493 回答