奇怪的C#单元测试语法,破坏了构建

奇怪的C#单元测试语法,破坏了构建,c#,visual-studio,unit-testing,C#,Visual Studio,Unit Testing,我有一些代码是从樟脑球里拿出来交给我的。它是在Visual Studio 2015中构建的,这就是我用来构建它的。无法联系到最初的开发人员,但我听说它以前总是构建的。我有两个测试无法构建。令人不快的线条如下所示: PathUtilities.dragdropwidgetView(主窗口,屏幕,true,out bool unused,out bool unused2) 最后两个参数都很时髦未使用的和未使用的2在其他任何地方都没有定义。虽然这对于当前版本的.NET来说是有效的语法,但IDE却在抱怨

我有一些代码是从樟脑球里拿出来交给我的。它是在Visual Studio 2015中构建的,这就是我用来构建它的。无法联系到最初的开发人员,但我听说它以前总是构建的。我有两个测试无法构建。令人不快的线条如下所示:

PathUtilities.dragdropwidgetView(主窗口,屏幕,true,out bool unused,out bool unused2)

最后两个参数都很时髦<代码>未使用的
未使用的2
在其他任何地方都没有定义。虽然这对于当前版本的.NET来说是有效的语法,但IDE却在抱怨它们

以下是它抛出的错误:

CS1525 Invalid expression 'bool'
CS1003 Syntax error, ',' expected
CS1525 Invalid expression 'bool'
CS1003 Syntax error, ',' expected
CS0103 The name 'unused' does not exist in the current context
CS0103 The name 'unused2' does not exist in the current context
这些用途包括:

using System.Collections.Generic;
using System.Threading;
using System.Windows.Automation;
using UIAutomation.ScreenUtilities;
using UIAutomation.ScreenUtilities.Screens;
它们都没有坏。所有的参考文献都是完整的

我已经注释掉了测试,以使其得以构建,但生产代码确实不允许这样做


显然,我需要升级Visual Studio正在使用的.NET版本。最初的开发者说明说VS2017可以使用,但前提是C#7功能被禁用。我希望不必升级到VS2017,因为我们的电脑被锁定,我们不允许自己安装任何东西。

“just't not build”没有告诉我们您看到的错误。从C#7(输出参数的内联声明)开始,这是完全有效的C#7,与测试框架没有任何关系。但是VS2015不支持C#7,所以我怀疑它从来没有在VS2015上构建过,或者开发人员安装过C#7的预览。我建议升级到一个更现代的Visual Studio版本。顺便说一句,新的热点是提供不需要名称的变量。它还可以作为一个信号发送给编译器进行优化。@Jon因为编译器是以包的形式发送的,所以这个项目。在开发机器和构建无法同时升级的服务器上过渡到VS2017时,我也做了同样的工作。这意味着它会在错误列表中显示为编译器错误,因为Visual Studio不理解语法,但它会生成并运行得很好。@CodeCaster:啊,这也是一个有趣的可能性。我想我们需要等待,看看OP是否会发布更多信息