我试图建立使用.NET标准2.0依赖一个Xamarin iOS应用。一这些依赖关系包括对System.Reflection.Emit 4.3.0
NuGet包的引用。这将导致生成错误时,iOS应用而建,作为与System.Reflection.Emit
参考门面此DLL冲突:
CSC:错误CS1703:具有同等身份的多重组件已经被输入:C:\用户\ ndesl.nuget \包\ system.reflection.emit \ 4.3.0 \参考\ netstandard1.1 \ System.Reflection.Emit.dll“和 'C:\ Program Files文件(x86)的\微软的Visual Studio \ 2017年\专业\ Common7 \ IDE \ ReferenceAssemblies \微软\框架\ Xamarin.iOS \ 1.0 \外立面\ System.Reflection.Emit.dll'。删除重复的参考资料之一。
任何人都知道如何应对呢?如果不是那些组件识别为2个版本的同一总成的?
试图指定的app.config不利于绑定重定向。我使用Xamarin和VS2017的最新版本。
一个最小的项目表现出的问题可以在这里找到:https://github.com/nicodeslandes/ReflectionEmitBuildIssue
转换您的iOS项目中的csproj文件,而不是packages.config使用PackageReference
。查看DOTNET /公告GitHub的Issues with .NET Standard 2.0 with .NET Framework & NuGet和Using Xamarin Forms with .NET Standard – VS 2017 Edition以获取更多信息。
注:我在Visual Studio中的MAC版本面临着同样的问题,但希望这将正常工作为你。
解决方案:花几个小时后,我找到了一个解决办法here回答没有。 2。
只需在以下路径删除System.Reflection.Emit.dll:
C:\ Program Files文件(x86)的\微软的Visual Studio \预览\企业\ Common7 \ IDE \ ReferenceAssemblies \微软\框架\ Xamarin.iOS \ 1.0 \外立面\ System.Reflection.Emit.dll
我只是我的答案添加到列表中。什么解决这对我来说是消除在的csproj文件的提示路径。一旦我做到了一切建成并运行良好。