-4

我用 C# Windows 窗体编写了一个程序。我可以使用简单的构建解决方案来构建程序。在配置管理器中,我将其设置为 x86 处理器。我正在使用 Visual Studio 2012。我在 64 位机器上。我可以在 64 位服务器上运行表单。当我在 32 位服务器上运行表单时,我收到一个应用程序错误,简单地说,“file.exe 不是有效的 win32 应用程序”

4

1 回答 1

0

在 Visual Studio 解决方案资源管理器中,右键单击您的项目并选择属性。在 Build 选项卡上,确保 Platform 设置为 x86。

在程序的开头,添加代码以查看它是否在 32 位进程中运行:

Console.WriteLine("64-bit process = {0}", Environment.Is64BitProcess);

(如果您有 GUI 应用程序,请显示包含该信息的消息框。)

那应该说false。如果它没有说false,那么您不是在创建 32 位应用程序。

如果它确实说false并且您的应用程序无法在您的 32 位计算机上运行,​​那么您很可能复制了错误的文件。添加这一行:

Console.WriteLine(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);

这将告诉您正在执行的文件的位置。从那里复制到您的服务器。

您说您收到一条消息“file.exe 不是有效的 win32 应用程序”。可以肯定的是,它报告的“file.exe”是您的应用程序的名称,对吧,而不是您的应用程序所依赖的其他 exe 或 dll?

如果您对此应用程序始终以 32 位运行没问题,那么将平台设置为 x86 就可以了。但是,如果您希望它在支持它的机器上以 64 位运行,您可能需要将其设置为“任何 CPU”。

于 2013-06-27T20:02:25.923 回答