如何使 vstest 命名管道在 Windows 10 中正常工作

如何使 vstest 命名管道在 Windows 10 中正常工作

和许多其他人一样,我使用 Visual Studio 进行软件开发。现在,我喜欢的功能之一是将 VSTest 集成到软件中。

VSTest 依靠命名管道在主机进程(测试进程)和 IDE 之间进行通信。不幸的是,主机进程和使用命名管道的测试运行器之间的通信似乎存在问题。

https://stackoverflow.com/questions/17664886/error-debugging-code-in-visual-studio-2012-failed-to-initialize-client-proxy有更多信息,但由于这最终归结为操作系统/防火墙/安全问题,我决定在这里询问。

现在,当您在管理员模式下运行 Visual Studio 时,一切都会突然开始正常工作。如果您在 W10 上处于普通用户模式,它就会崩溃。如果启用日志记录,则测试(客户端)服务上会写入以下消息:

E, 9308, 1, 2016/11/17, 09:53:39.560, 1036805288, vstest.console.exe, TestExecutorServiceClient: Could not connect to test executor service within the available time 60000. Reason:System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.pipe://mylaptop/TestExecutor/10516 that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

并且主机(服务器)服务上会写入以下消息:

I, 10516, 1, 2016/11/17, 09:52:39.545, 884887986, vstest.executionengine.exe, TestExecutorService: Starting TestExecutor with command-line arguments /parentProcessId;9308
I, 10516, 1, 2016/11/17, 09:52:39.579, 884968419, vstest.executionengine.exe, TestExecutorService: Created/Started the listening channel. ChannelUri=net.pipe://mylaptop/TestExecutor/10516

如您所见,服务器报告一切正常,而客户端无法连接到 uri。

我尝试过一些没有效果的方法:

  • 禁用防火墙。
  • 卸载病毒扫描程序。
  • 与 UAC 滑块混淆。

讽刺的是,我有一个类似的系统,运行着 W10,运行良好。类似;这是一台预装的戴尔笔记本电脑,而另一台是手工构建的系统。

为了缓解此问题,我尝试使用一些策略将 UAC 更改为本地管理员。虽然现在 VS 中的所有功能都可以正常工作,但它会因错误而破坏应用程序Can't open app with built in administrator

不过,在我看来这似乎是权限问题... 所以我来这里询问。有什么建议吗?

相关内容