Xamarin Android 4.6中链接器的问题

Xamarin Android 4.6中链接器的问题,android,mono,linker,xamarin,android-support-library,Android,Mono,Linker,Xamarin,Android Support Library,昨天我下载了Xamarin的新版本,Android wich是4.6.2。当我试图构建在早期版本中正常工作的项目时,Xamarin.Android 4.6.2存在链接器问题,解决方法是执行以下操作: 备份和编辑 /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets 删除对CopyMDB文件的所有引用 这些信息是通过Xamarin工程师Jon p提供的 如果

昨天我下载了Xamarin的新版本,Android wich是4.6.2。当我试图构建在早期版本中正常工作的项目时,Xamarin.Android 4.6.2存在链接器问题,解决方法是执行以下操作:

备份和编辑 /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets

删除对CopyMDB文件的所有引用

这些信息是通过Xamarin工程师Jon p提供的

如果你不想这样做,你可以暂时降级到4.6,直到修复程序在未来几天发布。我已经验证了4.6没有这个问题,我的应用程序至少在使用4.6构建时使用了发布配置


希望有帮助。

可能与Mono 3.0.8和3.0.9的此问题有关。4.6.2没有引入Mono3.x,这是4.6.2版本中的一个bug。
Ошибка  1   непредвиденная ошибка при выполнении задачи "LinkAssemblies".
System.ArgumentOutOfRangeException: Заданный аргумент находится вне диапазона допустимых значений.
в Mono.Collections.Generic.Collection`1.get_Item(Int32 index)
в Mono.Cecil.Mdb.MdbReader.ReadLocalVariables(MethodEntry entry, MethodBody body, Scope[] scopes)
в Mono.Cecil.Mdb.MdbReader.Read(MethodBody body, InstructionMapper mapper)
в Mono.Cecil.Cil.CodeReader.ReadMethodBody()
в Mono.Cecil.Cil.CodeReader.ReadMethodBody(MethodDefinition method)
в Mono.Cecil.MethodDefinition.<get_Body>b__2(MethodDefinition method, MetadataReader reader)
в Mono.Cecil.ModuleDefinition.Read[TItem,TRet](TItem item, Func`3 read)
в Mono.Cecil.MethodDefinition.get_Body()
в Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
в Mono.Linker.Steps.MarkStep.ProcessQueue()
в Mono.Linker.Steps.MarkStep.Process()
в Mono.Linker.Steps.MarkStep.Process(LinkContext context)
в Mono.Linker.Pipeline.Process(LinkContext context)
в MonoDroid.Tuner.Linker.Process(LinkerOptions options, LinkContext& context)
в Xamarin.Android.Tasks.LinkAssemblies.Execute()
в Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
в Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext() AndroidApplication7
Error 1 Unexpected error while trying to execute task "LinkAssemblies".
System.ArgumentOutOfRangeException: Provided argument is out off range
public class Activity1 : FragmentActivity
{
    int count = 1;

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.Main);

        // Get our button from the layout resource,
        // and attach an event to it
        Button button = FindViewById<Button>(Resource.Id.MyButton);

        button.Click += delegate { button.Text = string.Format("{0} clicks!", count++);
                                     DialogFragment messageFragment = MyDialogFragment.GetInstance();
                                     messageFragment.Show(SupportFragmentManager, "MessageDialog");
        };
    }
}
 public class MyDialogFragment : DialogFragment
 {
    public override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
    }

    public static MyDialogFragment GetInstance()
    {
        return new MyDialogFragment();
    }

    public override Dialog OnCreateDialog(Bundle savedInstanceState)
    {
        var builder = new AlertDialog.Builder(Activity);
        builder.SetMessage("Message");
        builder.SetPositiveButton("Ok", (sender, args) => { });

        return builder.Create();
    }

}