ユーザーが外部エイリアスが機能しないという問題を抱えているというこの質問の拡張と見なすことができる問題があります。
私が経験している違いは、2 つのプロジェクトが同じファイル名を出力することです。1 つ目 (古いバージョンなのでLegacyと呼びます) には、バイナリ シリアル化されたクラスが含まれています。2 番目 ( Current ) は、私のドメインの次のバージョンです。新しいドメインで使用するためにLegacyをCurrentにマップする変換ライブラリ ( Compatibility )を作成しようとしています。
両方のプロジェクトが MyApp.Domain.dll にビルドされるため、アセンブリがCompatibilityの出力フォルダーにコピーされると、一方が他方によって上書きされます。これが発生すると、実際には同じ名前のファイルが 1 つしかないため、コンパイラは同じアセンブリの 2 つのバージョンがあることを認識できません。
次のようになります。
Project Output
MyApp MyApp.exe
Legacy MyApp.Domain.dll
Current MyApp.Domain.dll
解決策の 1 つは、 Currentの出力ファイル名を変更すること(「V2」などを追加すること) であると認識していますが、回避できる場合は変更しない方がよいでしょう。「MyApp.Domain」署名を維持するのが好きです。あるいは、 Legacyの出力を出力フォルダーのサブフォルダーにコピーして、そこで参照するようにコンパイラーに指示する方法はありますか? 他の解決策はありますか?