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