我有一个问题可以被视为此问题的扩展,其中用户遇到外部别名不起作用的问题。
我遇到的变化是两个项目输出相同的文件名。第一个(我们称之为Legacy,因为它是旧版本)包含已二进制序列化的类。第二个(Current)是我的域的下一个版本。我正在尝试创建一个转换库(Compatibility),它将Legacy映射到Current以在新域中使用。
因为这两个项目都构建到 MyApp.Domain.dll,所以在将程序集复制到Compatibility的输出文件夹中时,一个会被另一个覆盖。发生这种情况时,编译器无法识别我有同一个程序集的两个版本,因为我实际上只有一个具有该名称的文件。
它看起来像这样:
Project Output
MyApp MyApp.exe
Legacy MyApp.Domain.dll
Current MyApp.Domain.dll
我意识到一种解决方案是更改Current的输出文件名(添加“V2”或类似名称),但如果可以避免,我不希望这样做;我喜欢保留“MyApp.Domain”签名。或者,有没有一种方法可以指示编译器将Legacy的输出复制到输出文件夹的子文件夹中,然后在那里引用它们?还有其他解决方案吗?