我有一个.Net应用程序,使用为该体系结构types设置的“Any”标志进行编译。
我想知道是否有可能强制应用程序运行在一个(任何)64位版本的Windows上的32位应用程序,而无需重新编译应用程序到32位可执行文件。
是的,如果您将项目属性设置为使用32位(x86我认为)显式它将始终运行在该模式下。 我们在使用SQLite ADO.Net提供程序(它只查找在x64系统上运行时无法加载的32位版本)时遇到了这个问题。
您可以使用corflags来设置可执行文件上的32位(哈哈)标志。 这是一个例子 。 总之,你会运行:
corflags /32BIT+ assembly.exe-or.dll
你会发现与Visual Studio一起安装的corflags.exe (installed in C:\Program Files\Microsoft SDK\6.0a or 7.0\bin)
或者你可以从Microsoft Windows SDK for Windows 7和.NET框架3.5 SP1 。