Win10 VS2010编译生成的WinForm可执行程序在Win7上不能执行
开发环境:Win10 64位企业版 VS2010
目标:C# Winform程序,目标框架.Net Framework4 Client Profile
问题:编译、打包后,安装,在Win10上能正常运行,在Win7 64位上开始执行就报错,报错信息如下:
问题事件名称: CLR20r3
  问题签名 01: xxx.exe
  问题签名 02: 2.1.0.3
  问题签名 03: 5d5a689d
  问题签名 04: System.Windows.Forms
  问题签名 05: 4.0.0.0
  问题签名 06: 4ba1e14e
  问题签名 07: 61b
  问题签名 08: 17
  问题签名 09: System.InvalidOperationException
  OS 版本: 6.1.7601.2.1.0.256.1
  区域设置 ID: 2052
  其他信息 1: 1073
  其他信息 2: 10737a5608e795d1072a521ae7f52d44
  其他信息 3: 4cac
  其他信息 4: 4cac319bea202ac7144b3153e9091808查看Windows日志系统,错误日志如下:
第一部分:
错误应用程序名称: xxx.exe,版本: 2.1.0.3,时间戳: 0x5d5a689d
错误模块名称: KERNELBASE.dll,版本: 6.1.7601.17514,时间戳: 0x4ce7c78c
异常代码: 0xe0434352
错误偏移量: 0x000000000000a49d
错误进程 ID: 0x18b8
错误应用程序启动时间: 0x01d557cbccf6e7b0
错误应用程序路径: E:\Program Files\XXX\XXX\xxx.exe
错误模块路径: C:\Windows\system32\KERNELBASE.dll
报告 ID: 0d29c15f-c3bf-11e9-ab27-7ce9d3dcfdfb
第二部分:
应用程序: xxxx.exe
Framework 版本: v4.0.30319
说明: 由于未经处理的异常,进程终止。
异常信息: System.InvalidOperationException
堆栈:
   在 System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(Boolean)
   在 ImagingWorkstation.Program.Main()现在问题是,可以看到错误发生的位置在SetCompatibleTextRenderingDefault,但是这个方法调用是创建项目的时候自动生成的
static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            。。
        }
调用也在Main开始就调用,没有打乱顺序,但是报的异常的解释却是说没有在创建第一个窗体前调用会产生System.InvalidOperationException异常,所以比较困惑

解决方案 »

  1.   

    感觉是你的.NET环境出了问题,你要不修复一下你Win7的.NET环境试试?
      

  2.   

    这个我觉得可能性不大,我专门找了一台完整安装了vs2010的win7试了下,也是同样的问题,应该能排除.net环境出问题的原因
      

  3.   

    .Net Framework4 Client Profile 把这个改成.Net Framework4试试
      

  4.   

    .Net Framework4 Client Profile这个框架基本上没有几台PC装了的
    都不知道为什么选这个进行开发
      

  5.   

    在win7电脑上安装一下VS2010试试
      

  6.   

    win7上装一个高版本的.net framework测试
      

  7.   

    抱歉,前几天在忙其他的事情。
    我试了下将.net framework4.0 client profile更换成了.net framework4.0,重新编译后,问题还是存在