我正在使用Visual Studio和一个包含10个左右项目的解决方案(主要是VB,一些C#),这些项目设置了各种依赖项。通常当我编译解决方案时,它工作正常。偶尔当我这样做时,我得到一个构建错误,说引用的项目之一是错误的版本(我认为总是相同的,可能是两个可能导致问题)。在这种情况下,转到解决方案资源管理器并右键单击所提到的项目并说“rebuild”,然后再进行另一次完整构建,使其工作正常。
我认为某处设置错误但我最初没有设置解决方案,快速查看并没有显示任何错误。
感觉有某种竞争条件,VS在内部设置项目的版本号,在项目重建之前所需的项目版本号因此错误或类似的东西但我确信VS应该处理所有这些都是正确的。
任何人都可以建议我可以检查这些地方是否已正确设置......
我最后应该注意到,由于我没有可靠的重复,我可能无法过快地回答问题。例如,“你能给出确切的错误信息”中显而易见的一个将不得不等待,因为我今天早上没有想到要复制它,只有在我用上述步骤清理它之后我想在这里发布。同样,任何解决方案都可能需要一段时间才能确认。
编辑以添加错误消息:
正在对程序集ODP版本1.0.3792.16586进行间接引用,其中包含“{{CLASSNAME}}”。本项目引用了ODP版本1.0.3791.18659的早期版本。要使用“{{CLASSNAME}}”,您必须将对ODP的引用替换为版本1.0.3792.16586或更高版本。
修改更明显相关的详细信息
由于它已被收购,我将澄清其中一个项目是一个Web项目,而且正是这个项目产生了上述错误信息。
进一步修改
进一步查看了我的web项目的bin diretory中有一个ODP.dll副本。使用Windows资源管理器并右键单击,询问属性并查看版本,它是版本1.0.3791.18659。在进行构建时删除了它(实际上将其移动到别处),它仍然使用相同的版本号(即旧版本号)重新创建此文件。
ODP声称也是一个项目参考,这仍然让我认为它应该正常工作...... :(进一步进一步修改
我认为现在的问题是,如果ODP项目发生变化,那么它会被重建,但不一定会导致所有依赖它的项目被重建。因此,仍然可以针对旧版本构建一个项目,针对新版本构建一个项目。如果他们试图在每个Ootehr与ODP中的对象之间进行交谈,那么它就会出错......我需要确认这一点,但我不确定此刻需要做些什么来解决它。 :)
答案 0 :(得分:0)
构建顺序是否正确?我可以想象如果你构建一个引用另一个项目的项目,而那个项目还没有构建,你就会遇到这种问题。
链接:http://msdn.microsoft.com/en-us/library/5tdasz7h%28v=VS.80%29.aspx
答案 1 :(得分:0)
如果你有一个网站项目,你确定你已经将它们设置为'项目'引用而不是'bin'引用 - 你可能会以这种方式得到一些问题。