Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用.net 4.0测试程序集测试.net 3.5程序集时,风险有多大_C#_.net_.net 4.0_.net 2.0_Clr - Fatal编程技术网

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

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中修复。我们

我意识到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功能,例如测试类别和数据驱动测试。

关于引用不同版本的框架库的问题在这里得到了回答:关于引用不同版本的框架库的问题在这里得到了回答: