Visual Studio 2015(Community Edition)の最新のXamarinにアップグレードし、プロジェクトを再コンパイルし、いくつかの小さなコード変更をチェックインすると、VSTSビルドサーバーが次のエラーメッセージで失敗します。
[エラー] CSC(0,0):エラーCS1703:同等のIDを持つ複数のアセンブリがインポートされました: 'C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\mscorlib.dll' 「C:\ Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll」重複する参照の1つを削除します。
インターネット検索では、一般にこの問題に関する詳細はほとんど表示されず、VSTSおよびXamarinのコンテキストでは貴重な情報はまったく表示されません。
私が問題に関連すると考えている唯一のコード変更は、プロジェクトファイルでVisual Studioによって行われました。
私はAndroid向けにのみ開発し、Xamarin 4.2を使用しており、JDK 8 u101を使用しています。
この問題を解決する方法はありますか?
.csproj
に対して次の変更を行い、トリックを行いました:
<PackageReference Include="System.Reflection.Emit">
<Version>4.3.0</Version>
<ExcludeAssets>All</ExcludeAssets>
<IncludeAssets>none</IncludeAssets>
</PackageReference>
すべてのSystem。*ライブラリを明示的にインストールする.net core nugetのインストール中にエラーが発生しました。私のMicrosoft.Net.Compilers
パッケージのアップグレードが必要な場合、このエラーはなくなりました。
7.1を6.0に戻すことでこれを自分で修正し、コンパイルが再び機能するようになりました。問題は、コンパイルエージェントにのみ表示されます。
私の場合、参照プロジェクトの1つにパッケージ参照「Microsoft.NETCore.Portable.Compatibility」がありました。それを削除して、AndroidとiOSプロジェクトが正常にビルドされました。
すべてのMicrosoftパッケージを更新しましたが、コンパイラエラーはなくなりました。したがって、この種のコンパイラエラーの一般的な解決策は次の2つのステップで構成されていると思います。
同様の問題がありました。
次のエラーはjenkinsコンソールの出力にありました
Multiple assemblies with equivalent identity have been imported: 'C:\Program Files (x86)\Jenkins\jobs\...\lib\net461\System.ComponentModel.Annotations.dll' and 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.ComponentModel.Annotations.dll'.
Remove one of the duplicate references.
私は自分のプロジェクトの1つで重複した参照を削除しましたが、うまくいきました。