2017-12-16 18 views
3

.NET Standard 2.0 종속성을 사용하여 Xamarin iOS 응용 프로그램을 빌드하려고합니다. 이러한 종속성 중 하나는 System.Reflection.Emit 4.3.0 NuGet 패키지에 대한 참조를 포함합니다. 이것은 System.Reflection.Emit에 대한 참조 외관이 DLL 충돌로, iOS 앱이 내장되어 빌드 오류가 발생합니다Xamarin.iOS와 동일한 ID 오류가있는 여러 어셈블리

CSC : 오류 CS1703 : 해당 정체성과 여러 어셈블리를 가져왔다 : 'C : \ 사용자 \ ndesl.nuget \ packages \ system.reflection.emit \ 4.3.0 \ ref \ netstandard1.1 \ System.Reflection.Emit.dll '및'C : \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ Xamarin.iOS \ v1.0 \ Facades \ System.Reflection.Emit.dll '을 입력하십시오. 중복 참조 중 하나를 제거하십시오.

누구나이를 어떻게 처리 할 수 ​​있는지 알고 있습니까? 해당 어셈블리를 동일한 어셈블리의 두 버전으로 인식해서는 안됩니까?

app.config에서 바인딩 리디렉션을 지정하려고해도 도움이되지 않습니다. Xamarin과 VS2017의 최신 버전을 사용하고 있습니다.

문제를 보이는 최소한의 프로젝트는 여기에서 찾을 수 있습니다 : https://github.com/nicodeslandes/ReflectionEmitBuildIssue

+0

문제를 해결할 수 있었습니까? 이 똑같은 문제가 발생하여 PackageReference를 사용하고 있으며 새 프로젝트 템플릿으로 문제가 해결되지 않았습니다. – Ensunder

+0

@Ensunder ossentoo의 대답을보십시오 [here] (https://stackoverflow.com/a/48641285/3411592) – Ahmad

답변

1

대신 packages.config의 csproj 파일에 PackageReference를 사용하도록 아이폰 OS 프로젝트를 변환합니다. 자세한 내용은 dotnet/announcements GitHub의 Issues with .NET Standard 2.0 with .NET Framework & NuGetUsing Xamarin Forms with .NET Standard – VS 2017 Edition을 참조하십시오.

+0

이 문제는 다른 어셈블리에서도 발생할 수 있습니다. 제 경우에는'System.Reactive.Linq'이었습니다. 그러나 PackageReference 로의 변환은이 문제를 해결했습니다. – Agat

+0

자동 변환을 위해 찾은 PowerShell 스크립트가 있습니다. https://gist.github.com/a4099181/074a6c3dd524ea0d343382137492399c – Agat