【发布时间】: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 位机器出现问题或损坏