我用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"。