这几天在整理项目的工程文件,因为需要控制各个工程的生成次序,而VS的解决方案提供了一种"项目依赖项"的方式去控制其次序.
这个是前提,我发现有的工程死活都无法依赖其他工程,重新加进来也是,重新启动解决方案还是,不知道是因为何故.
后来,我打开了解决方案的sln文件,发现有很多的GUID.还发现了一个字段:ProjectSection(ProjectDependencies).望文生义,可以知道,依赖项应该就是保存在这个字段,我还发现,不能依赖其他工程的那个工程里面有重复的GUID项,后面我拿这个重复的GUID一搜索,发现了:原来依赖的几个工程的GUID重复了!看来问题的根结在此了.
项目的GUID在vcproj的ProjectGUID这个字段里面保存的,理论上说其他语言的工程配置应该是差不多的.
另外,我还验证了,这个项目的GUID是随机生成的.
解决方法:
解决方法很简单,去下载一个GUIDGen.exe重新生成一个GUID就可以了,然后从解决方案里面把该工程删除并重新添加,再重新设置依赖项的时候你会发现,一切都正常了:)