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

时间:2011-04-13 19:54:40

标签: vb.net

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

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

2 个答案:

答案 0 :(得分:7)

  

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

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

也就是说,有四个位置控制Option Strict(以及所有其他选项):

  1. 控制项目默认值的Visual Studio选项
  2. 项目设置,
  3. web.config编译器命令行,
  4. 基于文件,源代码文件的顶行。
  5. 检查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> 
    

    ...可能已存在<compiler>节点 - 修改它。

答案 1 :(得分:0)

选项Strict可防止程序进行自动变量转换,即隐式数据类型转换。