首页 > 解决方案 > 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 浏览器并在任何类型的项目上进行调试。

标签: c#asp.netvisual-studiocsprojweb-project

解决方案


简单的解决方案(不确定是否可行,请告诉我):

  • 在 VS2017 中进入项目的属性,然后转到调试选项卡。你有启动浏览器的选项吗?(对不起,我目前没有在任何地方安装 2017)
  • 或者启动任何自定义命令?并指出您的调试实例。
  • (负面)冒着在队友或环境之间不跨职能的风险

既然您提到升级到 VS2019,我将建议将其作为最好的解决方案。

将所有项目文件更新为新格式。所有这些都应该在“属性”>“调试”中具有启动浏览器的选项。

此外,它在 DotNetCore 中工作的原因是因为 DotNetCore 摒弃了在 IIS 或类似的内部运行的概念,Kestral与控制台应用程序一样从Main入口方法连接起来,从而减少了对诸如您的情况的混淆。无论您的目标框架是什么,VS2019 都应该支持这种安排。


推荐阅读