【问题标题】:c# invalid win32 applicationc#无效的win32应用程序
【发布时间】:2018-04-24 00:22:50
【问题描述】:

好的,所以我已经阅读过,尝试了相当多的解决方案,但仍然没有设法解决这个问题。

我的应用程序在 32 位机器上测试时(我只在 1 台机器上测试过)在启动时立即崩溃,出现无效的 32 应用程序并且没有其他错误消息或指导信息。

应用程序是 c# .NET 4.5.2;内置于 Visual Studio 2017。我在构建配置中将其设置为 X86,应用程序在我的 64 位开发机器上运行。

出于测试目的,我制作了一个 32 位 windows 7 虚拟机,构建了解决方案并将输出 bin 文件夹中的所有内容复制到这台虚拟 32 位 windows 7 机器上。正如预期的那样,它运行良好。但是,如果我将那个确切的文件夹复制到物理 32 位机器,它会崩溃,说无效的 32 位应用程序。

我什至设置了一个条件来检查 IntPtr.Size 是否为 4,以确保我的应用程序以 32 位运行。

这让我觉得资源可能是在 64 位中构建的,但如果是这样,为什么它会在 32 位虚拟环境中运行。哎哟

我将尝试寻找另一台物理 32 位机器进行测试。

任何有关我如何排除故障或检索有关错误的更多信息的指导都会很棒。

物理机安装了 dot net 4.5.2 并且 99.99% 肯定也安装了 vcredist_x86。

【问题讨论】:

  • 您是否引用了一些为 x64 构建的外部程序集或 dll?
  • 我已经引用了一些外部程序集,据我所知它们是 32 位的,或者至少应该是 32 位的。该构建在 32 位虚拟环境 (vmware) 中运行,这让我觉得不是这样
  • 对于那些将其标记为离题帖子的人,请停止。这被正确识别为编译器拉入 64 位图像,这会导致 32 位机器出现问题或损坏

标签: c# .net windows 32-bit


【解决方案1】:

不知道为什么我的问题是负面的......但这现在已经解决了。

问题是 Team-viewer 在传输文件时以某种方式损坏了文件。我试图传输压缩文件,发现压缩文件非常小并且无法打开。于是我走进办公室,通过 USB 和 BAM 进行了交换。在职的。烦人什么的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 2012-01-05
    • 2012-05-17
    • 1970-01-01
    • 2021-07-28
    相关资源
    最近更新 更多