我有一个包含许多项目的解决方案。一个是asp.net项目,设置为使用asp.net开发服务器。其他项目与asp.net无关:例如,有些是用非托管c ++编写的windows服务,有些是c#console应用程序。
我的问题是,如果我在调试器中启动任何 nonasp.net项目,Visual Studio仍会启动asp.net开发服务器。当我使用Visual Studio的多个实例调试程序交互时,这会导致问题。当我调试Web应用程序时,我做希望启动Web服务器。
我注意到当我调试一个nonasp.net项目时,asp.net开发服务器是使用asp.net项目属性中指定的端口号和虚拟目录启动的。这些项目之间没有项目依赖关系。
有没有办法告诉visual studio只为实际指定应该使用它的项目启动开发服务器?
编辑1:要重现此行为:
fgetchar()
添加对main()
的调用,以便在运行时不会立即退出。编辑2:澄清我希望服务器在我调试Web项目时启动,但不是在调试其他非Web项目时启动。
答案 0 :(得分:2)
我有一个适合我的解决方案。
Web项目似乎有一个属性可以控制在调试器启动时是否启动asp.net开发服务器,即使Web项目本身没有被调试。
要更改此属性,请在解决方案资源管理器中选择Web项目,然后按F4访问属性网格。在网格中,在Development Server标题下,是一个名为Always Start When Debugging的布尔属性。默认值为true。
当我将此属性设置为false时,在调试非Web应用程序项目时,asp.net开发服务器不再启动。
该属性保留在<ProjName>.csproj.user
,而不是<ProjName>.csproj
。
答案 1 :(得分:0)
在Web项目的属性中,在“Web”选项卡下,您可以将启动行为更改为“使用自定义Web服务器”。这将停止VS调用IIS或ASP.NET Dev服务器实例。