Option Strict Intellisense错误但编译很好

时间:2017-12-06 01:55:04

标签: vb.net visual-studio-2017

我刚买了一台新工作的PC,并且正在将一个解决方案从VS15转移到17。

当我编辑现有的源文件时,我收到了一些与option strict相关的错误,其中包括:

Option Strict On requires all variable declarations to have an 'As' clause
Option Strict On disallows implicit conversions from 'Object' to 'Integer'
Option Strict prohibits operands of type Object for operator '-'
Option Strict On disallows late binding

除此之外,我收到有关未找到系统类的错误,例如AttributeNotImplementedException等。

项目中的所有解决方案都关闭了Option Strict。

与Object to Integer相关的错误是由循环中的i变量引起的,其中for行也有关于不允许后期绑定的错误。

我尝试删除解决方案中的vs文件夹,但没有任何区别。

项目编译没有问题。如何修复智能感知错误?

2 个答案:

答案 0 :(得分:7)

我认为.suo文件(或sqlite3文件)和Visual Studio 15.5中的 VB.NET 存在问题。

手动删除.suo文件甚至完整的.vs项目子文件夹都无法解决问题。

您需要打开解决方案,转到我的项目 - >属性 - >参考

您会看到底部的导入的命名空间都未选中。

滚动到系统并启用它(鼠标双击或空格)。

您可能会收到异常“索引超出数组范围”。只是忽略它,但现在应该解决智能感知问题。

您必须为每个加载解决方案的VB.NET项目执行此操作。

这是我发现的唯一解决方法。我希望他们能在下一个版本中修复它。

enter image description here

另一种解决方法:禁用并行项目初始化

我在Visual Studio反馈页面(https://developercommunity.visualstudio.com/content/problem/160241/errors-reported-when-none-exist.html)中找到了另一种解决方法。归功于 Peter van den Berge

enter image description here

取消选中“允许并行项目初始化”选项(工具>选项>项目和解决方案>常规)。重新打开解决方案。

答案 1 :(得分:2)

可能是描述here的VS 2017错误(第15.5.0节)。 在我将VS从15.4更新到15.5之后,今天和我发生了一起。

解决方法已经发布在德雷克的答案中。

取消选中选项Allow parallel project initialization(工具>选项>项目和解决方案>常规)。重新打开解决方案。

修改
这已通过latest update(第15.5.1节)修正。