MSBuild无法确定正确的解决方案依赖项

MSBuild无法确定正确的解决方案依赖项,msbuild,continuous-integration,Msbuild,Continuous Integration,我正在努力找到解决这个问题的办法 我有一个解决方案VS2008,它包含大约50个项目C 项目间依赖项作为项目引用添加,而不是通过引用DLL添加 此外,在“解决方案设置”对话框中正确设置了VS中的依赖项 问题是,在CI服务器上从MSBUILD命令行生成解决方案时,MSBUILD将按照解决方案文件中的排列顺序生成项目,而不是根据依赖项 我在网上找到了很多关于这方面的参考资料,但没有解决方案 如何从命令行使用msbuild正确生成解决方案?这可能是因为解决方案中的生成顺序无效。您可以更改生成顺序,而无

我正在努力找到解决这个问题的办法

我有一个解决方案VS2008,它包含大约50个项目C

项目间依赖项作为项目引用添加,而不是通过引用DLL添加

此外,在“解决方案设置”对话框中正确设置了VS中的依赖项

问题是,在CI服务器上从MSBUILD命令行生成解决方案时,MSBUILD将按照解决方案文件中的排列顺序生成项目,而不是根据依赖项

我在网上找到了很多关于这方面的参考资料,但没有解决方案


如何从命令行使用msbuild正确生成解决方案?

这可能是因为解决方案中的生成顺序无效。您可以更改生成顺序,而无需删除和重新添加项目。在解决方案资源管理器中,右键单击解决方案名称并选择项目生成顺序。您将能够指定项目的生成顺序,以便它能够在msbuild中工作。如果在开发期间在VS内部缓存了DLL,则通常会发生这种情况。若要验证其是否有效,请在更改生成顺序和运行生成之前删除所有obj和bin文件夹。

是否可以验证项目间引用是在项目级项目|添加引用…而不是在解决方案级项目|项目依赖项…上配置的…。在引用其他项目的.csproj文件中,每个引用的项目都应该有一个项目。我已经解决了这个问题。我删除了对依赖项目的引用并重新添加了它。看来GUID有点不同,我不知道如何。我猜从VS生成时没有问题,但使用MSBuild时,它无法检测到所引用的项目,也无法构建正确的依赖关系顺序。请访问讨论使用解决方案依赖关系的危险的MSBuild团队博客