我在Visual Studio 2017中收到了一条消息,具体来说, IDE0018 Variable declaration can be inlined.
所以我尝试使用内联变量声明,就像在visual studio 2017发行说明中提到的那样,但我无法让我的项目进行编译.
它没有显示错误消息,但输出显示" Rebuild All failed..... error CS1525: Invalid expression term 'int'
"
错误仅显示在输出中,而不是错误列表中的实际错误.
这是我正在使用的代码失败的实际示例.
if (int.TryParse(ExpYear, out int IExpYear)) { if (IExpYear < DateTime.Now.Year || IExpYear > DateTime.Now.AddYears(10).Year) { e += "Expiration Year is invalid.\n"; } } else { e += "Expiration Year is not a number.\n"; }
如果我还原更改,它会按预期编译.有可能我不是以某种方式使用c#7编译器吗?
谢谢.
更新:我在Build> Advanced中找到了语言设置并将其设置为C#7.0.现在构建项目会给我这个错误:
CSC:错误CS1617:/ langversion的选项'7'无效; 必须是ISO-1,ISO-2,默认值或1到6范围内的整数.
prudan.. 39
我能够通过安装Microsoft.Net.Compilers
v2.0.0 -rc3的nuget包来解决这个问题,之前安装的唯一版本是1.3.2.
我仍然不明白为什么如果安装的编译器不支持这个,则会出现intellisense和编译器错误.
我能够通过安装Microsoft.Net.Compilers
v2.0.0 -rc3的nuget包来解决这个问题,之前安装的唯一版本是1.3.2.
我仍然不明白为什么如果安装的编译器不支持这个,则会出现intellisense和编译器错误.
如果上述答案对您不起作用,因为它对我不起作用,请执行以下操作:
打开csproj文件并检查升级后是否在文件中引用了以下包,如果是,则将其删除.
接下来,检查"Project ToolsVersion".它必须是15.0,它可能是14.0,所以你必须改变它.
然后只需重新加载解决方案就可以了.请注意,如果您选择"重新加载项目",它将给您一个错误而不加载它.