zoukankan      html  css  js  c++  java
  • vs2010调试时发生监视显示表达式为false,但却进入了if块中

    今天调试一段示例代码sample.scheduler时发现了这样的问题:明明表达式为false,单步执行却进入了代码块,最初以为是某些缓存的pdb文件或者是gac引起,删除所有项目下bin,obj目录,查找是否有gac项目,但发现没有签名项目,bin,obj目录删除后仍然不行。

    虽然确信从程序启动到异常抛出没有多线程的代码,但经过一整天的调试后终于下决心从程序开始一步步单语句跟进,漫长的……4个小时跟了3遍还是没察觉出哪里有问题。

    这时天昏地暗啊……

    突然灵光闪现,我将Console的项目刚刚从08转到了2010,但lib使用的是以前的2010项目,发现Console项目属性》生成》目标平台是 x64,但其依赖的2个类库均为AnyCpu ,修改所有项目生成目标平台为x86后,问题解决。

    然后继续尝试是否可以使用x64, 居然编译报错:

    错误 1 视为错误的警告: 程序集生成 -- 引用的程序集“System.Data.dll”针对其他处理器 Quartz.2010
    错误 2 视为错误的警告: 程序集生成 -- 引用的程序集“mscorlib.dll”针对其他处理器 Quartz.2010
    错误 3 视为错误的警告: 程序集生成 -- 引用的程序集“System.Web.dll”针对其他处理器 Quartz.2010

    百思不得其解? data和web不支持x64吗? 那mscorlib也不支持那就疯掉了吧,这不等于说明.net不支持x64平台吗?那出这个选项作何?希望达人指教我一下。

    再尝试anycpu选项,编译成功但运行出错。

    相关资料解释:

    遇到的问题

      错误信息:

          错误  视为错误的警告: 程序集生成 -- 引用的程序集“System.Data.dll”针对其他处理器

          错误  视为错误的警告: 程序集生成 -- 引用的程序集“mscorlib.dll”针对其他处理器

      解决办法:

          选定项目,选择“属性”—“生成”,将“将警告视为错误”设为“无”。


      错误信息:

          错误 121 “sgen.exe”已退出,代码为 1。

      解决办法:

          选定web项目,右键选择“属性”—“生成”,将“生成序列化程序集”设成“关闭”。



      以上方法虽然最终得到了x64平台的程序,但是在64位服务器上运行一直有错误。

      最终的解决办法是使用anycpu选项来编译(其实默认就是anycpu,即将程序集编译为在任意平台上运行。)。

      参考:C# 编译器选项

  • 相关阅读:
    MySQL主键和外键使用及说明
    SQLAlchemy
    路飞学城购买流程API
    路飞学城知识点
    使用rest_framework写api接口的一些注意事项(axios发送ajax请求)
    微信推送功能
    支付宝支付业务
    路飞学城前端Vue
    Python爬虫,用第三方库解决下载网页中文本的问题
    Python爬虫,抓取淘宝商品评论内容
  • 原文地址:https://www.cnblogs.com/68681395/p/1818306.html
Copyright © 2011-2022 走看看