blueberryfields Asked: 2009-09-25 12:17:10 +0800 CST2009-09-25 12:17:10 +0800 CST 2009-09-25 12:17:10 +0800 CST 是否可以强制使用“Any”架构标签编译的 C# 应用程序在 64 位窗口上作为 32 位应用程序运行? 772 我有一个 .Net 应用程序,编译时为架构类型设置了“Any”标志。 我想知道是否可以强制应用程序在(任何)64 位版本的 Windows 上作为 32 位应用程序运行,而无需将应用程序重新编译为 32 位可执行文件。 windows 1 个回答 Voted Best Answer Joshua 2009-09-25T14:52:32+08:002009-09-25T14:52:32+08:00 是的,如果您将项目属性设置为明确使用 32 位(我认为是 x86),它将始终以该模式运行。我们在使用 SQLite ADO.Net 提供程序时遇到了这个问题(它只寻找 32 位版本,在 x64 系统上运行时无法加载)。 您可以使用 corflags 在可执行文件上设置 32 位位(哈哈)标志。这是一个例子。简而言之,您将运行: corflags /32BIT+ assembly.exe-or.dll 您会发现 corflags.exe 与 Visual Studio 的 SDK 一起安装,(installed in C:\Program Files\Microsoft SDK\6.0a or 7.0\bin)或者您可以从Microsoft Windows SDK for Windows 7 和 .NET Framework 3.5 SP1获取它。
是的,如果您将项目属性设置为明确使用 32 位(我认为是 x86),它将始终以该模式运行。我们在使用 SQLite ADO.Net 提供程序时遇到了这个问题(它只寻找 32 位版本,在 x64 系统上运行时无法加载)。
您可以使用 corflags 在可执行文件上设置 32 位位(哈哈)标志。这是一个例子。简而言之,您将运行:
您会发现 corflags.exe 与 Visual Studio 的 SDK 一起安装,
(installed in C:\Program Files\Microsoft SDK\6.0a or 7.0\bin)
或者您可以从Microsoft Windows SDK for Windows 7 和 .NET Framework 3.5 SP1获取它。