عبر البريد من Automapper https://github.com/AutoMapper/AutoMapper/issues/2455
عند إضافة AutoMapper> = 6.2.0 ، يفشل مشروع iOS للنماذج في إنشاء وإخراج خطأ CS1703.
الخطأ الدقيق هو
Error CS1703
Multiple assemblies with equivalent identity have been imported:
'C:\Users\plebm\.nuget\packages\system.reflection.emit\4.3.0\ref\netstandard1.1\System.Reflection.Emit.dll'
and
'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\Xamarin.iOS\v1.0\Facades\System.Reflection.Emit.dll'.
Remove one of the duplicate references.
يبدو أن سبب ذلك هو إضافة AutoMapper تبعية إضافية System.Runtime.Serialization.Primitives.4.3.0
في 6.2.0
باستخدام VS 15.5.1
كان البناء ناجحًا
فشل البناء
يبدو أن المصمم الآلي يستخدم شيئًا يتطلب انعكاسًا. هذا لن ينجح في iOS.
jassmith شكرا على التعليق. على الرغم من ذلك ، هناك سؤال واحد ، هل يتسبب Reflection.Emit في حدوث خطأ في وقت التشغيل أو خطأ في البناء؟
يستخدم AutoMapper ترجمة شجرة التعبير ، لذلك في النهاية Expression.Lambda (...). نحن نستخدم Reflection.Emit لبضع سيناريوهات مستهدفة للغاية.
بالنسبة لنا بشكل أساسي لاستهداف نظام التشغيل iOS ، نحتاج إلى التأكد من أن لدينا هدفًا لا يستخدم / يشير إلى انعكاس.
يبدو خطأ التجميع مثل المشكلات الأخيرة مع 15.5 وعمليات إعادة التوجيه الملزمة.
كان لي نفس المشكلة. كان الحل هو استخدام project.json في مشروع iOS الخاص بي مثل هذا:
{
"dependencies": {
"System.Reflection.Emit": {
"version": "4.3.0",
"exclude": "all"
}
},
"frameworks": {
"Xamarin.iOS,Version=v1.0": {}
},
"runtimes": {
"win": {}
}
}
gmwilhelm لم أكن أعرف أن project.json كان لا يزال شيئًا. أنا أتعلم اليوم
jassmith هل هناك فرصة لمراجعة هذه التذكرة مرة أخرى؟ أعلم أنك حددت علامة "غير صالحة" ، لكنني أعتقد أن هذا شيء في الواقع يجب على Xam معالجته
أحاول إعادة إنتاج هذا محليًا باستخدام حزمة NuGet فارغة فقط
مراجع انعكاس. اقضيه لكن لا تستخدمه. حصلت على خطأ الترجمة
مرة ولكن بعد ذلك ذهب في ظروف غامضة.
في الثلاثاء ، 2 يناير ، 2018 الساعة 5:54 مساءً ، كتب واد باجلين إخطارات @github.com:
jassmith https://github.com/jassmith أي فرصة لمراجعة هذا
التذكرة مرة أخرى؟ أعلم أنك وضعت علامة على أنه غير صالح ، لكنني أعتقد أن هذا في الواقع
شيء يجب أن تتناوله Xam.Forms-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/xamarin/Xamarin.Forms/issues/1380#issuecomment-354906852 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AAGYMoqgqceTH4BPe4vqZwLkAoYb1YO0ks5tGsGxgaJpZM4Q-gOM
.
تضمين التغريدة
يمكنني إعادة إنتاج خطأ التجميعات المتعددة في Visual Studio 15.5.5 ولكن ليس في VSMac. لقد قمت بإنشاء عنصر DevCom لتتبع ذلك .
لمعلوماتك: من أجل إجراء الحل البديل أعلاه ، قد تحتاج إلى إعادة تشغيل VS. حدث ذلك بالنسبة لي مع VS for Mac.
SvenEV كان لديه الحل في التزامه
أضف هذا إلى ملف csproj. إذا كنت تستخدم PackageReferences
<PackageReference Include="System.Reflection.Emit" Version="4.3.0">
<ExcludeAssets>all</ExcludeAssets>
</PackageReference>
أنا أكتبها هنا لجعلها أكثر وضوحًا ، بقدر ما نظرت ، يتم استخدام واجهة البث في Automapper لتعيين واجهات على سبيل المثال.
التعليق الأكثر فائدة
SvenEV كان لديه الحل في التزامه
أضف هذا إلى ملف csproj. إذا كنت تستخدم PackageReferences
أنا أكتبها هنا لجعلها أكثر وضوحًا ، بقدر ما نظرت ، يتم استخدام واجهة البث في Automapper لتعيين واجهات على سبيل المثال.