VS2010间接参考问题

时间:2012-03-13 16:12:20

标签: .net visual-studio-2010

我有这些VS2010 .net项目/程序集AssemblyA,AssemblyB,AssemblyC。

AssemblyC引用AssemblyA和AssemblyB
AssemblyB仅引用AssemblyA

每个项目都有自己的解决方案。 所有引用都设置为Specific Version = False

每次构建AssemblyA时,我在AssemblyC中都会遇到以下错误

“该项目当前包含对AssemblyA的多个版本的引用,对版本4.0.1.27700的直接引用和对版本4.0.1.33206的间接引用(通过'AssemblyB.SomeClass')。更改直接引用以使用版本AssemblyA的4.0.1.33206(或更高版本)。“

我发现的唯一解决方法是1)每次构建AssemblyA时都构建AssemblyB 2)删除AssemblyC中的两个引用并再次添加它们。

这是正常的吗?还有其他解决办法吗?

1 个答案:

答案 0 :(得分:0)

“Specific Version = False”仅告诉编译器链接到您在本地遇到的任何版本。编译后,它仍然需要您编译时的确切版本。所以当你构建一个新版本的AssemblyA时,AssemblyB不知道它,你最终得到了错误。

有没有理由说这些不是同一解决方案的一部分?如果要对AssemblyA进行更改,而AssemblyB使用它,那么重建AssemblyB似乎也是合理的。