我有一个由多个项目(所有类库)组成的解决方案。假设:A、B、C、D、E。
A、B 和 C 提供核心功能并且必须一起分布。D 和 E 提供了一些不一定在每种情况下都需要的适配器。
因此,很自然地,我想在分发之前将 A、B 和 C 合并为一个程序集(名为 ABC)。
问题是在编译项目时,D 和 E 引用了 A、B 和/或 C,而不是 ABC。因此,当后来我尝试在其他项目中引用 ABC、D 和 E 时,我收到编译错误,例如:“实例参数:无法从 'A.IBoo' 转换为 'A.IBoo'”。当然,在 VS 中,我还可以看到程序集签名(名称)是不同的。
有没有解决这个问题的好方法?
我知道我可能可以使用发布者政策,但它并不漂亮。
另外,我知道我可以将项目合并到原始解决方案中并避免使用 ILmerge,但我不想这样做。