使用.net 4.0测试程序集测试.net 3.5程序集时的风险有多大

我意识到Visual Studio 2010 sp1允许测试项目现在以3.5为目标。 但是,出于各种原因,我并不完全了解,我们的测试项目仍然以dot net 4.0为目标。

一般问题在标题中。 风险有多大?

具体来说,这可能意味着测试将在CLR v4中运行,而我们的许多客户将使用CLR v2。 此外,测试似乎使用v4库组件(例如System.Data),即使应用程序是针对v2构建的。

一个方法(System.Data.SqlClient.SqlBulkCopy)包含v2中的错误,该错误已在v4中修复。 我们的测试错过了。

暂且不说CLR,我怎样才能强制我的应用程序使用某些库的v2,即使它被v4测试程序集引用(加载到应用程序域中)? 我一直在尝试一个例子,似乎无法实现它。 我的3.5应用程序引用System.Data v2,并将程序集版本号回显到控制台。 从3.5测试程序集调用时,版本为2.0。 从4.0测试程序集中,版本为4.0。 (在我的应用程序的参考中,“特定版本”设置为true)

这应该给你你需要的东西:

进程内并行执行

我没有答案,所以我们决定通过将我们的测试项目恢复到dotnet 3.5来解决问题。 这意味着测试在CLR 2.0下运行。 但是,我们仍然使用VS2010的MSTest,并且仍然可以使用漂亮的2010function,例如测试类别和数据驱动测试。