.net 在64位系统上以32位运行任何CPU

.net 在64位系统上以32位运行任何CPU,.net,32bit-64bit,.net,32bit 64bit,我们正在使用第三方程序集,它似乎被编译为AnyCPU 但是,我们有许多应用程序的安装,这会导致问题。此第三方程序集使用oracle dataaccess库,在仅安装32位oracle客户端的64位计算机上不起作用 安装额外的64位oracle客户端是可能的,但成本也很高(需要花费大量时间,许多机器必须更新等) 有没有一种方法可以强制AnyCPU.Net程序集以32位运行而不重新编译?看一看 示例(设置32位标志): 假设您正在生成引用AnyCPU第三方程序集的.EXE,则需要将项目生成为x86。

我们正在使用第三方程序集,它似乎被编译为AnyCPU

但是,我们有许多应用程序的安装,这会导致问题。此第三方程序集使用oracle dataaccess库,在仅安装32位oracle客户端的64位计算机上不起作用

安装额外的64位oracle客户端是可能的,但成本也很高(需要花费大量时间,许多机器必须更新等)

有没有一种方法可以强制AnyCPU.Net程序集以32位运行而不重新编译?

看一看

示例(设置32位标志):


假设您正在生成引用AnyCPU第三方程序集的.EXE,则需要将项目生成为x86。此项目可以引用任何CPU程序集,但标记为x86,它将在32位和64位Windows上作为32位进程运行。

+1。例如,如果将第三方程序集上的标志加载到64位进程中,则所有更改都会导致运行时错误(请参阅doco)。OP已经有一个运行时错误,所以我看不出这有多大帮助:-/。他需要更改启动进程的EXE上的标志,虽然他可以使用corflags(即在现场),但从长远来看,在编译时重新定位到x86非常简单-time@piers7“他需要更改启动进程的EXE上的标志”:是的,我的回答是这样的。“虽然他可以使用corflags(即在现场)”:是的,这是OP要求的。这是OP实际问题的更好答案
corflags [path]\[YourAssembly.exe] /32Bit+