C# 由于VS2012,无法运行.NET 3.5单元测试项目?
问题背景: 我目前有两个项目。两者都是在Visual Studio 2012中构建的。这两个项目在各自的解决方案中都有一个单元测试项目。一个目标是.NET4框架,另一个目标是.NET3.5 问题: 这两个项目都在VS中运行测试。当我尝试通过批处理文件从命令行针对MSTest.exe运行.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
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上运行+