Visual studio VS2010中的单元测试3.5项目产生CS1685警告
我有一个针对.NET3.5的开发项目。我别无选择,因为大公司不会让我们瞄准4.0。我在VisualStudio2010中为解决方案添加了一个新的测试项目。我发现我只能针对测试项目中的4.0框架(这没关系,因为它没有部署) 一切都很好,只是我从测试项目中得到了编译器警告: 警告CS1685:在全局别名的多个程序集中定义了预定义类型“System.Action”;使用“c:\Program Files\Reference Assembly\Microsoft\Framework.NETFramework\v4.0\System.Core.dll”中的定义Visual studio VS2010中的单元测试3.5项目产生CS1685警告,visual-studio,unit-testing,visual-studio-2010,Visual Studio,Unit Testing,Visual Studio 2010,我有一个针对.NET3.5的开发项目。我别无选择,因为大公司不会让我们瞄准4.0。我在VisualStudio2010中为解决方案添加了一个新的测试项目。我发现我只能针对测试项目中的4.0框架(这没关系,因为它没有部署) 一切都很好,只是我从测试项目中得到了编译器警告: 警告CS1685:在全局别名的多个程序集中定义了预定义类型“System.Action”;使用“c:\Program Files\Reference Assembly\Microsoft\Framework.NETFramewo
我从测试项目中删除了对System.Core的引用,警告仍在发生。我只能假设这是因为我正在测试的项目目标是3.5,所以有些东西被弄错了。在我们的应用程序中的target 4.0获得批准之前,是否有一种干净的方法来消除此警告?听起来您正在使用MSTest作为单元测试框架。如果是这样的话,问题在于MSTest不支持VisualStudio2010中的向下定位。这意味着它将加载.Net程序集的4.0版本,即使您测试的项目目标是3.5。由于在此场景中加载的System.Core的多个版本,这会导致您看到的冲突
遗憾的是,除了将项目升级到4.0之外,没有办法解决这个问题 有什么方法可以抑制这个警告吗?我可以接受这种情况,直到我们升级,如果我们可以从列表中得到警告。它们将列表弄得乱七八糟,使我们很难识别我们应该处理的合法CA警告。@SonOfPirate您应该能够通过手动将
1685
元素添加到相关csproj文件中来抑制它们。为此,您需要手动编辑.csproj文件。