是否可以强制使用“Any”架构标签编译的 C# 应用程序在 64 位 Windows 上作为 32 位应用程序运行?

是否可以强制使用“Any”架构标签编译的 C# 应用程序在 64 位 Windows 上作为 32 位应用程序运行?

我有一个.Net 应用程序,使用针对体系结构类型设置的“Any”标志进行编译。

我想知道是否有可能强制应用程序在任何 64 位版本的 Windows 上作为 32 位应用程序运行,而无需将应用程序重新编译为 32 位可执行文件。

答案1

是的,如果您将项目属性明确设置为使用 32 位(我认为是 x86),它将始终以该模式运行。我们在使用 SQLite ADO.Net 提供程序时遇到了这个问题(它只寻找 32 位版本,在 x64 系统上运行时无法加载)。

您可以使用 corflags 在可执行文件上设置 32 位(哈哈)标志。以下是一个例子。简而言之,您将运行:

corflags /32BIT+ assembly.exe-or.dll

你会发现 corflags.exe 随 SDK 一起安装在 Visual Studio 中(installed in C:\Program Files\Microsoft SDK\6.0a or 7.0\bin),或者你可以从适用于 Windows 7 和 .NET Framework 3.5 SP1 的 Microsoft Windows SDK

相关内容