在调试模式下从Visual Studio 2012启动程序时(使用“播放”按钮),我的应用程序在某行代码中失败。为了具体起见,我收到的错误是:
方法Open引发异常。无法创建服务对象实例,或无法获取其IDispatch接口。
但是,当我通过单击文件名启动EXE来运行应用程序时,我不会遇到此错误。
另外有趣的是,我可以将以下语句添加到我的代码中(导致调试器在启动后附加)并且我没有收到上面提到的异常。
if(!Debugger.IsAttached) {
Debugger.Launch();
}
因此,简而言之:当Visual Studio启动我的程序时,有关进程权限/权限,应用程序域或其他正在改变其“正常”操作能力的因素的不同之处。我知道从Visual Studio启动时我的应用程序的父进程是 devenv.exe 进程,这可能与它有什么关系吗?
我做过的一些故障排除:
有什么想法吗?
我做了另一个测试并选择了调试 - >启动时无需调试,这不会产生指定的错误,但仍然启动程序,其父进程为 devenv.exe ,排除了这可能是一个潜在的问题。所以它与从程序开始时附加的调试器有关。