"内联临时变量"重构导致VS 2017默认MVC模板中的构建错误

时间:2017-04-20 18:37:56

标签: asp.net-mvc refactoring visual-studio-2017

在Visual Studio 2017社区中,从2017年4月2日开始打补丁,我在.net framework 4.6.2的默认MVC ASP.NET模板中看到了一个问题。 '内联临时变量'建议重构。我应用它然后构建并得到编译器错误,表明编译器不理解重构的代码。

要重现此问题:文件新增 - > Visual C# - >网络 - > ASP.NET Web应用程序(.NET Framework)。选择MVC并且不进行身份验证。在一个方法内部,例如HomeController上的Index(),添加:

var s = "test";
var q = s as IComparable;
if (q != null) { }

观察var q带下划线并建议使用内联临时变量重构。按Ctrl +。 (或点击灯泡 - >内联临时变量)会产生以下代码:

if (s is IComparableq) { }

构建。注意构建输出中的编译器错误表明a);在重构的行上省略或}。错误列表中不显示错误,仅显示输出窗口。预期的行为将是它编译。

控制台应用程序不会发生此行为。

我猜这与使用较旧编译器版本的默认模板有关,但我无法弄清楚可能设置的位置或如何修复此项目。此外,似乎IDE不应该推荐当前项目不支持的重构,并且IDE错误列表应该反映构建错误。我看过其他类似的SO帖子,但建议的修补程序(update-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r,从项目文件中删除行)似乎不起作用,而另一个帖子涉及不同的症状和较旧的VS版本。

我更喜欢重构的代码,并希望使用此功能。如何在ASP.NET Web应用程序中完成此工作?

0 个答案:

没有答案