在内部版本中使用x86配置文件编译C#仍然会收到无效的win32应用程序



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

在Visual Studio解决方案资源管理器中,右键单击项目并选择"属性"。在"构建"选项卡上,确保"平台"设置为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位运行,您可能需要将其设置为"Any CPU"。

相关内容

最新更新