问题场景:
如果一个项目是由多人开发的话,各人使用的操作系统不同,经常导致的是他们机器上的DLL版本也不同,在一个解决方案中的两个有依赖关系的项目中引用了不同的DLL(特别是使用了复制到本地)。
在项目过程中使用了不同版本的组件,在一个解决方案中的两个有依赖关系的项目中引用了不同版本的DLL。
导致的现象有:
明明项目中引用了这个DLL,但是编译器提示Proj使用了有在某个DLL中的声明但是未引用。
两个明明相同的类型变量的赋值,编译器提示说不能做从“类型1”到“类型1”的转换。
处理办法:
所有有依赖关系的项目务必引用相同版本的DLL。一个做法是给一个解决方案一个ComDLL的目录,把有版本问题的DLL都放入这个目录中,并加入解决方案、check in到VSS中,解决方案中所有的项目引用都引用这个目录下的DLL,这样,即使不同的系统也不会有问题了。
典型案例:
StdOle.dll
DataWindow.dll