Visual studio Ocean API:发现系统中正在运行调试器。请将其从内存中卸载并重新启动程序

Visual studio Ocean API:发现系统中正在运行调试器。请将其从内存中卸载并重新启动程序,visual-studio,ocean,petrel,Visual Studio,Ocean,Petrel,我用Ocean API编写了一个简单的代码。当我想在不调试的情况下启动它时,它可以工作,我可以在Petrel中看到插件。但是,当我尝试调试它时,会显示一条消息: cEngineer.dll发现系统中正在运行调试器。请从内存中卸载调试器并重新启动程序。 我如何解决这个问题 非常感谢,Petrel无法在调试模式下启动。您可以在调试器启动后将其附加到调试器。在插件代码的早期附加调试器的一个技巧是: Debugger.Launch(); 在IModule.Initialize方法中 64位版本的Pet

我用Ocean API编写了一个简单的代码。当我想在不调试的情况下启动它时,它可以工作,我可以在Petrel中看到插件。但是,当我尝试调试它时,会显示一条消息:

cEngineer.dll发现系统中正在运行调试器。请从内存中卸载调试器并重新启动程序。

我如何解决这个问题


非常感谢,

Petrel无法在调试模式下启动。您可以在调试器启动后将其附加到调试器。在插件代码的早期附加调试器的一个技巧是: Debugger.Launch();
在IModule.Initialize方法中

64位版本的Petrel在初始化过程中被强化,以防反向工程,但前面的答案是正确的:稍后附加(例如,使用Debugger.Launch(),或在UI出现后手动附加)可以正常工作


或者,您可以使用开发者专用的32位Petrel构建(查看Ocean开发者网站)。基于纯.NET的插件可以正常工作,并且可以直接在VS调试器中启动。

您可能只获得了Petrel运行时许可证。您需要开发人员许可证,请与斯伦贝谢联系以了解详细信息。@HansPassant,虽然您在技术上是正确的,但Ocean SDK许可证不会影响附加调试器的能力。谢谢。我以前尝试过这些解决方案。不幸的是,它们没有工作,并且提到的错误仍然存在。当我将调试器添加到Module.Initialize方法时,我得到了相同的错误。当海燕的用户界面出现时,我也尝试连接海燕。Petrel在进程列表中可用,但我无法选择附加它。应该注意,petrel进程的类型是“IntelliTrace调试引擎”!我使用了Petrel and ocean 2014。然后你附加到了错误的代码类型。改为选择“托管”。@RJFalconer我已经打开了一个Petrel项目,然后我尝试附加托管类型。当我附加它时,VS变为调试模式,Petrel项目被隐藏!但是,它在任务管理器的“流程”选项卡中可用。我不知道下一步是什么@user7047425关于在Initialize方法中使用Debugger.Launch()的问题,我得到了相同的错误,同时它必须弹出一个窗口,让我选择合适的调试器!!!