C在我们的.NET应用程序中,我们有项目 A ,它引用了一个基础设施项目,我们称之为 Infra 。现在,项目 A 也引用了项目B,它位于不同的解决方案中,引用了另一个版本的Infra。顶级应用程序项目 C 引用项目 A 。
虽然编译得很好,但它有另一个副作用 - 它不会将 Infra.dll 复制到项目 C 的bin文件夹中。
我增加了构建输出的详细程度,看看究竟是什么问题,并看到了这个:
" Infra,Version = 1.1.14.9 ..."之间存在冲突。和" Infra, 版本= 1.0.0.0 ......"。 " Infra,Version = 1.1.14.9"被选中是因为它 有更高的版本。
这实际上很有意义,对同一版本有两个相互冲突的引用应该尝试获得更高版本。问题是 B 项目对 Infra 的引用不是可访问路径,因此不会被复制。
我可以通过将参考表单项目 C 直接添加到 infra 来解决这个问题,但我不愿意。我想知道是否可以明确告诉编译器使用哪个版本。
有什么想法吗?