如果"Option Strict"处于关闭状态,为什么编译因"Option Strict On"而失败?

gre*_*fly 0 vb.net

我继承了一个我需要编译的VB.NET应用程序,所以我可以在其上运行dokumentation.我首先收到"Option Strict On禁止从x到y的隐式转换"错误,因此我关闭了Project文件中的Option Strict选项.

那么为什么我仍然会失败并显示相同的错误消息?

Kon*_*lph 7

我首先收到"Option Strict On禁止从x到y的隐式转换"错误,因此我关闭了Project文件中的Option Strict选项.

而不是说,修复错误?原谅我的讽刺,但你选择了错误的修复:而不是禁用Option Strict应该修复编译器指出的错误.毕竟,重点Option Strict是帮助使代码更加健壮.

也就是说,有四个地方控制Option Strict(和所有其他选项):

  1. 控制项目默认值的Visual Studio选项,
  2. 项目设置,
  3. 所述web.config编译器命令行,
  4. 在文件的基础上,源代码文件的顶行.

Option Strict在地点2,3和4中检查它是否已关闭,并且它在第1位(因为转弯Option Strict Off通常是一个非常非常糟糕的主意).那个问题应该消失了.

也可以尝试禁用设置明确web.config.我在这里,但根据forums.asp.net,这可以通过直接在<configuration>节点内添加以下内容来完成:

<system.codedom>
    <compilers>
        <compiler compilerOptions ="/optionstrict-" language="vb;vbs;visualbasic;vbscript"
                  extension=".vb"
                  type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    </compilers>
</system.codedom> 
Run Code Online (Sandbox Code Playgroud)

...可能已经存在一个<compiler>节点 - 修改它.