【C#】我得到“ 32位进程无法访问64位进程的模块”。异常调用Process.Start()
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
:【C#】我得到“ 32位进程无法访问64位进程的模块”。异常调用Process.Start()
当我到达代码:Process.GetProcessById,我得到这个错误: A 32 bit processes cannot access modules of a 64 bit process. 问题描述这是代码示例: var startInfo = new ProcessStartInfo{ Arguments = commandStr, FileName = @"C:\Windows\SysWOW64\logman.exe", };using (var createCounterProc = new Process { StartInfo = startInfo }) { createCounterProc.Start(); createCounterProc.WaitForExit(); } 运行代码后,我得到 32位进程无法访问64位进程的模块。 MainModule中的错误消息(NativeErrorCode:299)。我的解决方案配置为AnyCPU。我已经尝试过64位和32位版本的logman.exe(C:\Windows\SysWOW64\logman.exe和C:\Windows\System32\logman.exe),但是我仍然遇到相同的错误。我的操作系统是Win8.1Prox64。可能引起问题的原因? 堆栈跟踪: at System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId, Boolean firstModuleOnly) at System.Diagnostics.NtProcessManager.GetFirstModuleInfo(Int32 processId) at System.Diagnostics.Process.get_MainModule() 这是构建配置。 推荐答案选择用于平台目标的任何CPU 是不够的,您还必须取消选中首选32位,否则该应用程序仍将以32位运行。将目标平台设置为“x64”即可: 这仅适用于应用程序项目,不适用于库项目。如果您的项目是一个库,则必须在您的项目中使用您的库。 该文章在 2024/2/8 17:29:21 编辑过 |
关键字查询
相关文章
正在查询... |