C# VS2015解决方案生成提供编译错误

C# VS2015解决方案生成提供编译错误,c#,build,msbuild,visual-studio-2015,dependencies,C#,Build,Msbuild,Visual Studio 2015,Dependencies,我一直在与运行VS2015时遇到的一个奇怪的编译错误作斗争。错误在于,当我编译(重建)一个解决方案(这是一个大型解决方案,有96个项目)时,我会得到一个编译错误。错误是: 70>----已开始全部重建:项目:MyBase, 配置:调试任何CPU------ 70>I:\WS\Main\Common\MyBase\MyBase\BaseApplication.cs(1,7,1,10): 错误CS0246:无法指定类型或命名空间名称“MyProject” 找到(是否缺少using指令或程序集引用?)

我一直在与运行VS2015时遇到的一个奇怪的编译错误作斗争。错误在于,当我编译(重建)一个解决方案(这是一个大型解决方案,有96个项目)时,我会得到一个编译错误。错误是:

70>----已开始全部重建:项目:MyBase, 配置:调试任何CPU------ 70>I:\WS\Main\Common\MyBase\MyBase\BaseApplication.cs(1,7,1,10): 错误CS0246:无法指定类型或命名空间名称“MyProject” 找到(是否缺少using指令或程序集引用?)

所以,我做的第一件事就是尝试编译
MyBase
,它编译得很好。然后,我分别编译(重建)了不同的项目组,直到最后在尝试编译第一个使用MyBase的项目时出错,给出了一个稍微不同的错误:

44>----已启动全部重建:项目:MyBase,配置:调试 任何CPU------

43>CSC:错误CS0006:元数据文件 无法创建“I:\WS\Main\Common\MyBase\MyBase\bin\Debug\MyBase.dll” 发现

我尝试的下一件事是在整个解决方案的命令行上创建一个MSBuild,这很有效

最后,回到VS2015,我尝试了重建,然后是构建,解决方案没有出错


看看构建中的数字,在我看来,它似乎在执行一些不同步的构建步骤(43之前是44)。这可能吗?是否存在某种异步构建已经潜入VS并开始导致这种行为。我已经对依赖项进行了两次和三次检查,我觉得它们很好。

Visual Studio 2015支持并行编译。如果您的一些项目相互依赖,则必须设置项目依赖关系。您可以使用项目菜单中的项目依赖项菜单点执行此操作。有关详细信息,请参阅。

似乎您没有正确定义项目依赖项和生成顺序。或者您有循环引用(即项目x依赖于项目y,反之亦然)。如何设置这些项目依赖关系。我没有循环依赖关系(事实上,我不相信如果您有项目依赖关系,您就可以循环依赖关系)。我已经检查过了,构建顺序在我看来是正确的,也就是说,项目按照我期望的顺序构建。我所做的是从出错的项目中删除引用,然后重新添加项目引用;这让它起作用了。但是,解决方案或构建顺序中没有任何更改!循环依赖在技术上是可能的,但它的优点是永远无法构建。因此,并非如此,MSBuild没有正确计算项目依赖项。这个问题并没有暗示为什么会这样。只要帮助它,右键单击不生成的项目>生成依赖项>项目依赖项>勾选MyBase。