2017-12-16 21 views
3

.NET Standard 2.0の依存関係を使用してXamarin iOSアプリケーションを構築しようとしています。これらの依存関係の1つに、System.Reflection.Emit 4.3.0 NuGetパッケージへの参照が含まれています。 iOSアプリが構築されるとき、これはSystem.Reflection.Emitの基準ファサードとこのDLLの競合として、ビルドエラーが発生します。Xamarin.iOSと同等のIDエラーを持つ複数のアセンブリ

CSC:エラーCS1703:同等のアイデンティティを持つ複数のアセンブリがインポートされている:「C:\ Users \ユーザー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 'をクリックします。重複する参照の1つを削除します。

誰もがこれに対処する方法を知っていますか? これらのアセンブリは、同じアセンブリの2つのバージョンとして認識されるべきではありませんか?

app.configでバインドリダイレクトを指定しようとしても効果がありません。私はXamarinとVS2017の最新バージョンを使用しています。

問題を呈する最小限のプロジェクトは、ここで見つけることができます:https://github.com/nicodeslandes/ReflectionEmitBuildIssue

+0

これを解決できましたか?私たちはまったく同じ問題を抱えており、PackageReferenceを使用しています。新しいプロジェクトテンプレートはこの問題を解決していません。 – Ensunder

+0

@Ensunder ossentooの答えを見てください[ここ](https://stackoverflow.com/a/48641285/3411592) – Ahmad

答えて

1

ではなくpackages.configのcsprojファイルでPackageReferenceを使用するようにiOSのプロジェクトを変換します。詳細については、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

関連する問題