Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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# 由于VS2012,无法运行.NET 3.5单元测试项目?_C#_Unit Testing_Batch File_Visual Studio 2012 - Fatal编程技术网

C# 由于VS2012,无法运行.NET 3.5单元测试项目?

C# 由于VS2012,无法运行.NET 3.5单元测试项目?,c#,unit-testing,batch-file,visual-studio-2012,C#,Unit Testing,Batch File,Visual Studio 2012,问题背景: 我目前有两个项目。两者都是在Visual Studio 2012中构建的。这两个项目在各自的解决方案中都有一个单元测试项目。一个目标是.NET4框架,另一个目标是.NET3.5 问题: 这两个项目都在VS中运行测试。当我尝试通过批处理文件从命令行针对MSTest.exe运行.NET 3.5项目时,我收到以下消息: To be able to target your project to .NET Framework 3.5, you must use the steps docume

问题背景:

我目前有两个项目。两者都是在Visual Studio 2012中构建的。这两个项目在各自的解决方案中都有一个单元测试项目。一个目标是.NET4框架,另一个目标是.NET3.5

问题:

这两个项目都在VS中运行测试。当我尝试通过批处理文件从命令行针对MSTest.exe运行.NET 3.5项目时,我收到以下消息:

To be able to target your project to .NET Framework 3.5, you must use the steps
documented at the following Microsoft Web site: http://go.microsoft.com/fwlink/
?LinkId=201405
链接信息只是建议将项目重新定位到.NET3.5,但由于项目已经定位到.NET3.5,我不认为这会有什么帮助

我可以通过批处理文件运行另一个.NET4目标项目,而不会出现任何问题

我真正的问题是:

1。由于我已经在VS2012中构建了我的项目,它是否只会运行针对.NET 4框架和更高版本的单元测试?


2。如果我从VS2008运行这个,它会工作吗?

4.0+框架是与VS2012一起安装的。如果你想使用.net 3.5和更低版本,你应该下载并安装它。

因此,作为标准,即使我将项目的目标定位在.net 3.5,它也会在VS2012中针对.net 4运行,因为它是在VS2012中构建的。如果你只使用4.x framework安装VS 2012,那么全局程序集缓存(GAC)将放在C:\Windows\Microsoft.net\assembly\GAC\MSIL中。使用.NET 4.0构建项目时,所有共享程序集的路径都设置为此GAC。因此,如果您在.NET4.0项目中使用.NET4.5.1,它将运行良好,因为GAC的路径是相同的,并且应用程序将可以使用.NET4.+在任何地方访问它们。但是.NEt 3.5 GAC位于C:\Windows\assembly\中。当您生成使用.NEt 3.5创建的项目时,编译器会将路径更改为.NEt 4.+的GAC,并且此应用程序将仅在使用.NEt 4的PC上运行+