VS2013: 在调试开始后运行可执行文件

13 浏览
0 Comments

VS2013: 在调试开始后运行可执行文件

我正在尝试以一种接收来自外部应用程序的请求的方式运行特定的Web项目。

因此,当按下F5键时,它会在Visual Studio中以调试方式启动当前的Web项目,但会等待来自其他网站的Web调用。

问题是,为了使其他网站工作,我必须启动几个其他网站,包括服务、资源、认证服务器等。其中一些不是解决方案的一部分,这意味着我不能使用“调试时始终启动”选项。

为此,我有一个在“启动外部程序”部分中看到的灰色的可执行文件。这个程序是“IISExpressRunner”。这个程序在一切设置完成后,也会打开访问这个站点的站点。

Project properties Web

我的问题是,我目前需要每次启动调试时都手动运行它,因为两个选项不能同时选择 - 这当然是没有意义的,因为它只能调试一个东西。

我可以单独通过IISExpressRunner应用程序调试Web站点,但这意味着我需要以管理员模式运行VS,因为该应用程序请求UAC以能够禁用IIS在端口80上运行IISExpress - 这是用于域别名和Google和Facebook登录的认证服务器重定向的 - 以便在开发环境中本地运行它。

所以,有没有一种方法可以让Visual Studio在调试当前项目后自动执行这个外部应用程序,而不对其进行调试?

0
0 Comments

问题的原因是,当运行调试会话时,右键单击想要同时开始调试的项目,然后转到Debug子菜单,点击Start New Instance。这样做会导致一些奇怪的问题,运行程序的时候需要启动一些服务,但不会调试其中一个服务,当浏览器打开时,会启动Web门户的主页,如果程序员没有在Visual Studio中及时开始调试,则主页无法正常工作。解决方法是以管理员模式启动Visual Studio,而不是使用F5启动。

0
0 Comments

问题的原因是想在调试开始后运行一个可执行文件。目前没有找到直接的解决方法,但可以使用一些变通的方法来实现。

一个解决方法是在调试应用程序之前使用代码 "Debugger.IsAttached()" 调用批处理文件。

另一个避免在项目代码中使用特定于csproj.user的解决方法是在每个要调试的项目的启动中添加代码。例如,使用 #if DEBUG 等方法来编辑代码和调试所需内容。

0