2017-02-21 185 views
0

當我使用混淆(.NET電抗器)我得到的發佈版本這個錯誤:出現錯誤MSB4018:「LinkAssemblies」任務意外失敗。對於Xamarin的Android在Visual Studio 2015年

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:「LinkAssemblies」任務意外失敗。

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018信息:System.ArgumentException:空名稱

1 > C:\ Program Files文件 (86)\的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(String 命名空間,字符串名稱)

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:在 Mono.Cecil能做到.MetadataResolver.GetTypeDefinition(ModuleDefinition模塊, TypeReference型)

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018 :at Mono.Cecil.MetadataResolver.GetType(ModuleDefinition module, TypeReference reference)

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:在Mono.Cecil.MetadataResolver.Resolve(TypeReference 型)

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:在Mono.Cecil.ModuleDefinition.Resolve(TypeReference 型)

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:莫no.Cecil.TypeReference.Resolve()

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:在 Mono.Linker.Steps.SweepStep.ResolveAllTypeReferences(AssemblyDefinition 組件)

1> C:\ Program Files文件 (86)\的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文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:在Mono.Linker。 Pipeline.Process(LinkContext上下文)

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:在MonoDroid.Tuner .Linker.Process(LinkerOptions options,LinkContext & context)

1> C:\ Program Files (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:在Xamarin.Android.Tasks.LinkAssemblies.Execute()

1> C:\程序文件 (x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()

1> C:\ Program Files文件 (86)\的MSBuild \ Xamarin \的Android \ Xamarin.Android.Common.targets(1586,5): 錯誤MSB4018:在 Microsoft.Build.BackEnd.TaskBuilder.d__26 .MoveNext()

我使用Visual Studio 2015與Visual Studio v4.2.2.11 Xamarin擴展(文件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,它是適用於Visual Studio的Xamarin擴展的版本。我正在使用的正確版本的Xamarin Android v7.0.2.42 – ncruz

+0

您最好聯繫Xamarin支持。調用堆棧顯示Mono.Cecil問題,因此它必須與作爲引用添加的程序集相關。如果它們以某種方式被混淆,則會出現這樣的問題。 –

+0

我聯繫了Xamarin的支持人員,他說他們沒有技術/開發支持,因爲他們已經被Visual Studio團隊吸收了。我沒有添加任何程序集引用 - 這是一個空白的Android項目,沒有添加任何代碼,只需點擊「新建項目」並選擇「Blank Android Project」即可。 Mono.Cecil與組件引用有什麼作用?我注意到調用堆棧在Mono.Cecil.Mixin.CheckName(String name)處有一個'System.ArgumentException:空名'錯誤。 – ncruz

回答

0

我的信用這個答案萊克斯李誰指出,我應該嘗試禁用每個混淆的特點,看看這會觸發連接問題。有幾個命令行開關用於激活某些混淆功能,例如:-suppressildasm 1 -obfuscation 1 -stringencryption 1 -antitamp 1 ..等等。起初,我從命令行刪除/刪除了它們,但仍然有錯誤。然後我把它們都放回去,而不是1(-suppressildasm 0)而不是0來關閉每個功能。 suppressildasm功能是導致錯誤的功能。

相關問題