c# - Visual Studio 在控制台应用程序而不是 Web 项目中打开 Web 浏览器 + 调试器
问题描述
我最近使用自定义 Web 服务器将一些项目从 IIS ASP NET 项目更改为控制台应用程序。在这两种项目中,我们将项目作为控制台应用程序运行(因此我们实际上并没有使用 IIS),
但是,作为一个 Web 项目,分析器不起作用。所以我们将项目更改为控制台应用程序,这使得分析器工作。不幸的是,这删除了运行 Web 浏览器和自动附加调试器的选项。这出现在视觉工作室中,如下所示:
控制台应用程序:
网络项目:
有没有办法在仍然是控制台应用程序的同时恢复它?
我尝试将其添加到.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 核心应用程序似乎也是控制台应用程序,但它们可以以某种方式启动浏览器并附加调试器。我们正在使用 Visual Studio 2017,但我们很乐意升级到 2019 来解决这个问题。JetBrains Rider IDE 似乎也能够启动 Web 浏览器并在任何类型的项目上进行调试。
解决方案
简单的解决方案(不确定是否可行,请告诉我):
- 在 VS2017 中进入项目的属性,然后转到调试选项卡。你有启动浏览器的选项吗?(对不起,我目前没有在任何地方安装 2017)
- 或者启动任何自定义命令?并指出您的调试实例。
- (负面)冒着在队友或环境之间不跨职能的风险
既然您提到升级到 VS2019,我将建议将其作为最好的解决方案。
将所有项目文件更新为新格式。所有这些都应该在“属性”>“调试”中具有启动浏览器的选项。
此外,它在 DotNetCore 中工作的原因是因为 DotNetCore 摒弃了在 IIS 或类似的内部运行的概念,Kestral与控制台应用程序一样从Main
入口方法连接起来,从而减少了对诸如您的情况的混淆。无论您的目标框架是什么,VS2019 都应该支持这种安排。
推荐阅读
- flutter - 如何将颤振数据排序为降序?最新在顶部
- angular - 如何为 matStepperNext 创建条件?
- windows - 如何编译 Ncurses 程序以供本机 Windows 使用
- python - 如何将 np.argmax(array) 写入文本文件?
- c# - YouTube API“每天查询”超过约 3 小时
- admob - 如何从商品详情中删除“包含广告”
- java - 尝试打开 GUI 时出现 org.bukkit.command.CommandException
- c# - 按多列分组为对象和相关列表
- amazon-web-services - 如何从 AWS CLI 创建 Amplify React 应用程序
- python - 我的方块怎么不动?我向箭头键发送垃圾邮件,但代码没有给出错误,只是没有按照预期的方式工作