在.NET中,“平台目标:任何CPU”编译选项允许.NET程序集在x64机器上以64位方式运行,在x86机器上以32位方式运行。同时,也可以使用“平台目标:x86”编译选项强制程序集在x64机器上以x86方式运行。
是否可以使用“任何CPU”标志运行程序集,但是确定它是否应在x86或x64 CLR上运行?通常,根据底层系统的位数,此决策由CLR / OS加载程序(据我所知)做出。
我正在尝试编写一个C# .NET应用程序,该应用程序可以与(读取:注入代码)其他正在运行的进程进行交互。 x64进程只能注入到其他x64进程中,而对于x86同理。理想情况下,我希望利用JIT编译和“任何CPU”选项,使单个应用程序可以用于注入到x64或x86进程(在x64机器上)中。
这个想法是将应用程序编译为“任何CPU”,在x64机器上运行为x64。如果目标进程是x86,则应该重新启动自己,强制CLR将其作为x86运行。这可行吗?
是否可以使用“任何CPU”标志运行程序集,但是确定它是否应在x86或x64 CLR上运行?通常,根据底层系统的位数,此决策由CLR / OS加载程序(据我所知)做出。
我正在尝试编写一个C# .NET应用程序,该应用程序可以与(读取:注入代码)其他正在运行的进程进行交互。 x64进程只能注入到其他x64进程中,而对于x86同理。理想情况下,我希望利用JIT编译和“任何CPU”选项,使单个应用程序可以用于注入到x64或x86进程(在x64机器上)中。
这个想法是将应用程序编译为“任何CPU”,在x64机器上运行为x64。如果目标进程是x86,则应该重新启动自己,强制CLR将其作为x86运行。这可行吗?