簡単に修正したい興味深い問題があります。VisualStudioのソリューションの「クライアント」プロジェクトと「テスト」プロジェクトの両方で参照される「ライブラリ」アセンブリがあります。問題は、テストプロジェクトがクライアントプロジェクトも参照していることです。ILMergeを使用して、ライブラリアセンブリをクライアントアセンブリとマージして配置する必要があります。ライブラリアセンブリはクライアントアセンブリとマージされるため、テストプロジェクトをビルドしようとすると、最初に参照されたライブラリアセンブリとマージされたアセンブリの両方に存在するライブラリアセンブリの型についてエラーが発生します。
本当の問題は、クライアントプロジェクトのビルド後のステップでILMergeを実行していることです。最善の解決策は、それを実際の展開プロセスに移すことです。ただし、現在のツールでは、実装が困難になります。
タイプが複数のアセンブリに含まれている可能性があり、それで問題ないことを.NETに伝える方法はありますか(実際には同じアセンブリであるが、ある場合には別のアセンブリとマージされているだけです)。