C# 将框架降级为4.0:类型或命名空间名称';X';命名空间中不存在

C# 将框架降级为4.0:类型或命名空间名称';X';命名空间中不存在,c#,visual-studio,visual-studio-2012,.net-4.0,.net-framework-version,C#,Visual Studio,Visual Studio 2012,.net 4.0,.net Framework Version,我想将一些设置回4.0,但一些单元测试项目需要4.5,并且出现了如下错误: 错误1命名空间“Foo”中不存在类型或命名空间名称“Util”(是否缺少程序集引用?) 我听一些人说,解决方案中的每个项目都必须是框架的同一版本,所以我在同一个目录中为4.0版本创建了一个单独的解决方案文件,但它仍然不起作用。相同的错误消息任何想法?认为解决方案中的每个项目都必须位于同一版本的框架上的说法是不正确的。在同一个解决方案中,让项目以.Net Framework的多个版本和多个概要文件为目标是合法的。只要ref

我想将一些设置回4.0,但一些单元测试项目需要4.5,并且出现了如下错误:

错误1命名空间“Foo”中不存在类型或命名空间名称“Util”(是否缺少程序集引用?)


我听一些人说,解决方案中的每个项目都必须是框架的同一版本,所以我在同一个目录中为4.0版本创建了一个单独的解决方案文件,但它仍然不起作用。相同的错误消息任何想法?

认为解决方案中的每个项目都必须位于同一版本的框架上的说法是不正确的。在同一个解决方案中,让项目以.Net Framework的多个版本和多个概要文件为目标是合法的。只要referencee的框架版本与referencer的框架版本兼容(4.5可以引用4.0,但不能反过来),它们之间甚至可以有引用


不幸的是,要回答您提出的具体问题,我们需要更多关于所讨论项目的信息。但我猜,当你降级到4.0时,你不知何故破坏了项目引用。我首先要确保所有引用都处于我预期的状态

您是否选择了客户端配置文件版本?当我不小心选择它时,我总是遇到类似这样的奇怪问题。您是否真的在
Foo.Util
(一个自定义名称空间,可能使用代码来学习概念)方面出错,或者这是某个库?什么库?所以你证明了这个错误实际上与降级.NET版本无关。最好是从“是否缺少程序集引用”的角度来考虑。@TyCobb,我没有首先选择客户端配置文件版本。如果我那样做,情况会变得更糟。“Foo”是因为非公开性问题而混淆了我们的实际名称空间名称。Util和其他两个项目是非依赖api。我正在一个接一个地将项目添加到新的解决方案中。我添加了一个依赖于util的“通用”api,该api运行良好。然后我添加了我们的引擎api,它依赖于Common和其他3个非依赖api,引擎项目不喜欢任何项目引用。如果我回到4.5版本,一切正常,这就是我现在必须做的。我将尝试上传我们的解决方案的zip文件,以重现问题。我得先去掉一些专有的东西。谢谢大家!我将尝试上传一个“工作”示例项目。正在构建的系统是一个mvc项目和一个wcf服务,但在4.0中,前两个类库项目配合得很好,我遇到了一些问题。