How do I force my application to run as 32-bit on a 64-bit machine?
The code is written in C#.
Right click your project, and select properties.
In properties, select the build tab. Under platform target, select x86.
Hit Ctrl + Shift + S to save all files, right click the solution and select "Clean" to get rid of old binaries. Any builds after that should be 32 bit
命令行形式:
corflags application.exe /32BIT+
Here's how I did it when we couldn't change the existing code from Any CPU to x86 due to a ClickOnce limitation:
Create a 32-bit (x86 must be checked under project properties) 'launcher' application (Windows Application but not form):
static void Main(string[] args)
{
// Load the assembly
string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string assemblyName = Path.Combine(directory, "YourAnyCPUApplication.exe");
Assembly assembly = Assembly.LoadFile(assemblyName);
assembly.EntryPoint.Invoke(null, null);
}
Add the following code to the Main method in the Any CPU project:
if (IntPtr.Size == 4)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// etc...
}
else
{
// Launch application in 32-bit mode
System.Diagnostics.Process.Start(Path.GetDirectoryName(Application.ExecutablePath)
+ @"\Your32BitApplicationLauncher.exe");
}
I hope this helps :-)
如果您转到 Visual Studio 中的配置管理器,您可以将平台设置为 x86 或 x64。
Assuming this is a Winforms, console app, or Windows service you have to build the exe for x86 instead of Any CPU. It's in the Configuration Manager.
Setting the project to x86 will prevent the file from executing on non-x86 platforms such as ARM. Since Visual Studio 11 and .NET framwork 4.5 there's a new option named Any CPU 32-bit preferred
and this was the default since then. The resulting code will run on any platforms but on 64-bit platforms they are run as 32-bit processes
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.