我最近使用自定义 Web 服务器将一些项目从 IIS ASP NET 项目更改为控制台应用程序。在这两种项目中,我们都将项目作为控制台应用程序运行(因此我们实际上没有使用 IIS),
但是,作为一个Web项目,分析器不起作用。因此,我们将项目更改为控制台应用程序,这使得探查器可以工作。不幸的是,这删除了运行 Web 浏览器并自动附加调试器的选项。这出现在 Visual Studio 中,如下所示:
控制台应用程序:
网络项目:
有没有办法在仍然是控制台应用程序的情况下恢复它?
我尝试将其添加到 .csproj:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>False</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>52826</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:53107/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>True</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
<servers defaultServer="SelfHostServer">
<server name="SelfHostServer" exePath="" cmdArgs="-c http://localhost:52826/" url="http://localhost:52826" workingDir="" />
</servers>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
但这似乎没有帮助。更现代的 .net core 应用程序似乎也是控制台应用程序,但它们可以以某种方式启动浏览器并附加调试器。我们使用的是 Visual Studio 2017,但我们很乐意升级到 2019 来解决该问题。 JetBrains Rider IDE 似乎还能够启动 Web 浏览器并在任何类型的项目上进行调试。
简单的解决方案(不确定是否有效,请告诉我):
既然你提到升级到 VS2019,我将建议这是最好的解决方案。
将所有项目文件更新为新格式。所有这些都应该在“属性”>“调试”中具有启动浏览器的选项。
它在 DotNetCore 中工作的原因也是因为 DotNetCore 消除了在 IIS 或类似内部运行的概念,Kestral 与控制台应用程序一样从
Main
入口方法连接,从而减少了诸如以下情况的混乱你的。无论您的目标框架是什么,VS2019 都应该支持这种安排。