我有一个.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。