Skip to content

An item with the same key has already been added. Key: System.String System.Reflection.ParameterInfo::get_Name() #4978

@Ali-YousefiTelori

Description

@Ali-YousefiTelori

Cannot compile my xamarin app when i using package SignalGo.Net.Shared
This happening when I using linked.xml

Build Logs

7>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(794,3): error MT2102: Error processing the method 'System.Boolean SignalGo.Shared.Helpers.ReflectionHelper/d__0::MoveNext()' in the assembly 'SignalGo.Shared.dll': An item with the same key has already been added. Key: System.String System.Reflection.ParameterInfo::get_Name()
7> --- inner exception
7> Mono.Linker.MarkException: Error processing method: 'System.Boolean SignalGo.Shared.Helpers.ReflectionHelper/d__0::MoveNext()' in assembly: 'SignalGo.Shared.dll' ---> System.ArgumentException: An item with the same key has already been added. Key: System.String System.Reflection.ParameterInfo::get_Name()
7> at System.Collections.Generic.Dictionary2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) [0x0015a] in <14f1e720d53a4a6a8800252bec102319>:0 7> at System.Collections.Generic.Dictionary2[TKey,TValue].Add (TKey key, TValue value) [0x00000] in <14f1e720d53a4a6a8800252bec102319>:0
7> at MonoTouch.Tuner.MonoTouchMarkStep.MarkMethod (Mono.Cecil.MethodReference reference) [0x000b2] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs:112
7> at Mono.Linker.Steps.MarkStep.MarkInstruction (Mono.Cecil.Cil.Instruction instruction) [0x00048] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:1638
7> at Xamarin.Linker.Steps.CoreMarkStep.MarkInstruction (Mono.Cecil.Cil.Instruction instruction) [0x00042] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/CoreMarkStep.cs:223
7> at Mono.Linker.Steps.MarkStep.MarkMethodBody (Mono.Cecil.Cil.MethodBody body) [0x000a5] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:1617
7> at MonoTouch.Tuner.MonoTouchMarkStep.MarkMethodBody (Mono.Cecil.Cil.MethodBody body) [0x0000d] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs:160
7> at Mono.Linker.Steps.MarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x0019d] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:1465
7> at Xamarin.Linker.Steps.CoreMarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x00060] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/CoreMarkStep.cs:187
7> at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x0001f] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:188
7> --- End of inner exception stack trace ---
7> at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x0002c] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:190
7> at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue () [0x00012] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:174
7> at Mono.Linker.Steps.MarkStep.Process () [0x00146] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:136
7> at Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x0000f] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:77
7> at Xamarin.Linker.Steps.MobileMarkStep.Process (Mono.Linker.LinkContext context) [0x00001] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/MobileMarkStep.cs:33
7> at Xamarin.Linker.Steps.CoreMarkStep.Process (Mono.Linker.LinkContext context) [0x00017] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/CoreMarkStep.cs:32
7> at MonoTouch.Tuner.MonoTouchMarkStep.Process (Mono.Linker.LinkContext context) [0x0001d] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs:36
7> at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x0001f] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker/Pipeline.cs:127
7> at MonoTouch.Tuner.Linker.Process (MonoTouch.Tuner.LinkerOptions options, MonoTouch.Tuner.MonoTouchLinkContext& context, System.Collections.Generic.List1[Mono.Cecil.AssemblyDefinition]& assemblies) [0x000e0] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/Tuning.cs:80 7> --- 7> --- inner exception 7> System.ArgumentException: An item with the same key has already been added. Key: System.String System.Reflection.ParameterInfo::get_Name() 7> at System.Collections.Generic.Dictionary2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) [0x0015a] in <14f1e720d53a4a6a8800252bec102319>:0
7> at System.Collections.Generic.Dictionary2[TKey,TValue].Add (TKey key, TValue value) [0x00000] in <14f1e720d53a4a6a8800252bec102319>:0 7> at MonoTouch.Tuner.MonoTouchMarkStep.MarkMethod (Mono.Cecil.MethodReference reference) [0x000b2] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs:112 7> at Mono.Linker.Steps.MarkStep.MarkInstruction (Mono.Cecil.Cil.Instruction instruction) [0x00048] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:1638 7> at Xamarin.Linker.Steps.CoreMarkStep.MarkInstruction (Mono.Cecil.Cil.Instruction instruction) [0x00042] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/CoreMarkStep.cs:223 7> at Mono.Linker.Steps.MarkStep.MarkMethodBody (Mono.Cecil.Cil.MethodBody body) [0x000a5] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:1617 7> at MonoTouch.Tuner.MonoTouchMarkStep.MarkMethodBody (Mono.Cecil.Cil.MethodBody body) [0x0000d] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs:160 7> at Mono.Linker.Steps.MarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x0019d] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:1465 7> at Xamarin.Linker.Steps.CoreMarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x00060] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/linker/CoreMarkStep.cs:187 7> at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x0001f] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/linker/linker/Linker.Steps/MarkStep.cs:188 7> --- 7> at MonoTouch.Tuner.Linker.Process (MonoTouch.Tuner.LinkerOptions options, MonoTouch.Tuner.MonoTouchLinkContext& context, System.Collections.Generic.List1[Mono.Cecil.AssemblyDefinition]& assemblies) [0x00145] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/Tuning.cs:92
7> at Xamarin.Bundler.Target.LinkAssemblies (System.Collections.Generic.List1[Mono.Cecil.AssemblyDefinition]& assemblies, System.String output_dir, System.Collections.Generic.IEnumerable1[T] sharedCodeTargets) [0x00256] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/Target.cs:517
7> at Xamarin.Bundler.Target.ManagedLink () [0x00720] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/Target.cs:664
7> at Xamarin.Bundler.Target.ProcessAssemblies () [0x000c2] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/Target.cs:868
7> at Xamarin.Bundler.Application.ProcessAssemblies () [0x0002f] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/Application.cs:1411
7> at Xamarin.Bundler.Application.BuildManaged () [0x00001] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/Application.cs:839
7> at Xamarin.Bundler.Application+<>c.b__140_1 (Xamarin.Bundler.Application v) [0x00000] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/Application.cs:787
7> at System.Collections.Generic.List1[T].ForEach (System.Action1[T] action) [0x0001e] in <14f1e720d53a4a6a8800252bec102319>:0
7> at Xamarin.Bundler.Application.BuildAll () [0x00050] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/Application.cs:787
7> at Xamarin.Bundler.Driver.Main2 (System.String[] args) [0x00423] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/mtouch.cs:1402
7> at Xamarin.Bundler.Driver.Main (System.String[] args) [0x00015] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mtouch/mtouch.cs:934
========== Build: 6 succeeded, 1 failed, 17 up-to-date, 0 skipped ==========

in the signalgo source:

/// <summary>
    /// helper of reflection methods
    /// </summary>
    public static class ReflectionHelper
    {

        public static IEnumerable<Shared.Models.GoParameterInfo> MethodToParameters1(this MethodInfo methodInfo, Func<object, string> serialize, params object[] args)
        {
            ParameterInfo[] methodParams = methodInfo.GetParameters();

            for (int i = 0; i < args.Length; i++)
            {
                yield return new Shared.Models.GoParameterInfo() { Name = methodParams[i].Name, Value = serialize(args[i]) };
            }
        }

        public static IEnumerable<Shared.Models.GoParameterInfo> MethodToParameters2(this Models.ServiceDetailsMethod methodInfo, List<Models.ServiceDetailsParameterInfo> parameters, Func<object, string> serialize)
        {
            foreach (Models.ServiceDetailsParameterInfo parameterInfo in parameters)
            {
                yield return new Shared.Models.GoParameterInfo() { Name = parameterInfo.Name, Value = serialize(parameterInfo.Value) };
            }
        }

#if (!NET35)
        public static IEnumerable<Shared.Models.GoParameterInfo> MethodToParameters3(this System.Dynamic.InvokeMemberBinder methodInfo, Func<object, string> serialize, params object[] args)
        {
            System.Collections.ObjectModel.ReadOnlyCollection<string> methodParams = methodInfo.CallInfo.ArgumentNames;

            for (int i = 0; i < args.Length; i++)
            {
                yield return new Shared.Models.GoParameterInfo() { Name = methodParams[i], Value = serialize(args[i]) };
            }
        }
#endif

linked.xml File:

<?xml version="1.0" encoding="utf-8" ?>
<linker>
  <assembly fullname="Agrin.InternetServiceProvider">
    <type fullname="*" />
  </assembly>

   <assembly fullname="Agrin.UI.ViewModels">
    <type fullname="*" />
  </assembly>
  <assembly fullname="SignalGo.Client">
    <type fullname="*" />
  </assembly>
  <assembly fullname="SignalGo.Shared">
    <type fullname="*" />
  </assembly>
 <assembly fullname="Framesoft.Parallax">
    <type fullname="*" />
  </assembly>
  <assembly fullname="MvvmGo">
    <type fullname="*" />
  </assembly>
  <assembly fullname="AsNum.XFControls">
    <type fullname="*" />
  </assembly>
  <assembly fullname="mscorlib">
    <type fullname="System.Reflection*" />
  </assembly>
  <assembly fullname="LiteDB">
    <type fullname="*" />
  </assembly>
  <assembly fullname="GoStorageCaching.Engine">
    <type fullname="*" />
  </assembly>
  <assembly fullname="CrazyMapper">
    <type fullname="*" />
  </assembly>
  <assembly fullname="Agrin.Client.DataBase">
    <type fullname="*" />
  </assembly>
  <assembly fullname="Agrin.Models">
    <type fullname="*" />
  </assembly>
  <assembly fullname="Agrin.Download">
    <type fullname="*" />
  </assembly>
  <assembly fullname="Agrin.Foundation">
    <type fullname="*" />
  </assembly>
  <assembly fullname="Agrin.Component">
    <type fullname="*" />
  </assembly>
  <assembly fullname="System">
    <type fullname="System.Net.Sockets*" />
  </assembly>
  </linker>

Metadata

Metadata

Assignees

Labels

bugIf an issue is a bug or a pull request a bug fixiOSIssues affecting iOS

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions