C# 使用.net 4.0测试程序集测试.net 3.5程序集时,风险有多大
我意识到VisualStudio2010SP1现在允许测试项目以3.5为目标。 然而,由于种种原因,我并不完全理解,我们的测试项目仍然以dotnet4.0为目标 一般问题在标题中。风险有多大 具体来说,这可能意味着测试将在CLR v4中运行,而我们的许多客户机将使用CLR v2。 此外,测试似乎使用v4库组件(如System.Data),即使应用程序是根据v2构建的 一个方法(System.Data.SqlClient.SqlBulkCopy)在v2中包含一个bug,该bug已在v4中修复。我们的测试漏掉了这个C# 使用.net 4.0测试程序集测试.net 3.5程序集时,风险有多大,c#,.net,.net-4.0,.net-2.0,clr,C#,.net,.net 4.0,.net 2.0,Clr,我意识到VisualStudio2010SP1现在允许测试项目以3.5为目标。 然而,由于种种原因,我并不完全理解,我们的测试项目仍然以dotnet4.0为目标 一般问题在标题中。风险有多大 具体来说,这可能意味着测试将在CLR v4中运行,而我们的许多客户机将使用CLR v2。 此外,测试似乎使用v4库组件(如System.Data),即使应用程序是根据v2构建的 一个方法(System.Data.SqlClient.SqlBulkCopy)在v2中包含一个bug,该bug已在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,并且仍然能够使用漂亮的2010功能,例如测试类别和数据驱动测试。对此我没有答案,所以我们决定通过将测试项目恢复到dotnet 3.5来回避这个问题。这意味着测试在CLR 2.0下运行。但是,我们仍然使用VS2010中的MSTest,并且仍然能够使用漂亮的2010功能,例如测试类别和数据驱动测试。关于引用不同版本的框架库的问题在这里得到了回答:关于引用不同版本的框架库的问题在这里得到了回答: