我有一个程序,当我按F5键运行它时,出现以下错误,并且无法运行:
尝试运行项目时出错,无法启动程序'F:....'。 远程调试监视器(MSVSMON.EXE)在远程计算机上似乎没有运行...
这是在成功编译项目之前发生的。 是否有任何需要设置的项目设置可能会出错?
我正在使用Visual Studio 2012 Update 2。
我有一个程序,当我按F5键运行它时,出现以下错误,并且无法运行:
尝试运行项目时出错,无法启动程序'F:....'。 远程调试监视器(MSVSMON.EXE)在远程计算机上似乎没有运行...
这是在成功编译项目之前发生的。 是否有任何需要设置的项目设置可能会出错?
我正在使用Visual Studio 2012 Update 2。
这对我有用:
1)在修复Visual Studio之前,请不要更改计算机上的任何内容并尝试第2步。
2)以管理员身份启动Visual Studio。然后打开您的解决方案并尝试进行调试。
VS 正在以管理员权限运行
在这种情况下,Windows Defender 可能会阻止 devenv.exe
进程与 127.0.0.1 不同的 IP 进行通信。如果您无法以普通用户身份运行 VS,请在 PowerShell 提示符中尝试此命令(以管理员身份运行):set-mppreference -EnableNetworkProtection 0
。
VS 计算机无法解析远程调试设置中指定的主机名
在项目设置的 配置属性 -> 调试 -> 远程服务器名称 中,用其 IP 地址替换主机名(如果 msvsmon.exe
进程监听的端口与默认端口不同,则还需替换相关端口。请参见 here,了解您的 VS 版本的默认端口是什么)。
VS 计算机无法连接运行远程调试器的计算机
远程调试器至少需要这些端口:4020、4021、135 和 445。更复杂的是,默认端口并不总是 4020,而是针对每个 VisualStudio 版本都有所更改(例如,在 VS2019 中为 4024)。请参见 here。检查端口是否已打开以及两端之间的通信是否正常工作的最简单和最有效的方法是在两台计算机上安装 nmap。请注意,cygwin 中的 nc
命令不是 NetCat 的同一实现,也不适用于我们的测试。在需要运行远程调试器的计算机上运行以下命令(测试期间不要运行 msvsmon.exe
):ncat -v -l <host_ip> <port>
然后在运行 VisualStudio 的计算机上运行以下命令:ncat -v <host_ip> <port>
请注意,host_ip
是运行远程调试器的计算机的 IP。如果该主机接收到连接,则没有防火墙阻止通信。在这种情况下,您应该在远程主机中看到类似于此的内容:Ncat: Connection from xxx
。您可以重复测试端口 4020 和 4021。请注意,端口 4020 可以在远程调试器界面中更改,而且如前所述,默认端口并不总是 4020,而是针对每个 VisualStudio 版本都有所更改。
您可能还需要其他端口进行身份验证(如果在远程调试器上启用了身份验证)和在远程计算机上部署文件。您可以在运行 VisualStudio 的计算机上运行相同的命令
ncat -v <host_ip> <port>
并检查以下端口:135 和 445。请注意,在这种情况下,您无需在远程主机上运行 nmap(服务已在该端口上监听)。
您可以直接进入调试设置,在调试选项卡中勾选“使用远程机器”,然后输入一些名称(即使该机器不存在也没关系)。
保存设置,使用配置运行,如果出现错误,只需再次取消勾选“使用远程机器”即可。
Visual Studio 将重新设置为本地调试,这应该可以解决问题。我认为这比关闭程序或更改不是根本原因的设置要好。
我在尝试将JavaScript UWP应用程序部署到Xbox One时遇到了问题,原因是我选择的目标架构为x64。将其更改为任何CPU后,我就可以将其部署到控制台上了。