在控制台应用程序中使用Visual Studio打开Web浏览器和调试器而不是Web项目

4
我最近将一些IIS ASP NET项目更改为控制台应用程序,使用自定义的Web服务器。在两种类型的项目中,我们将项目作为控制台应用程序运行(因此实际上并没有使用IIS)。
然而,作为一个Web项目,性能分析器无法使用。所以我们将项目更改为控制台应用程序,这样性能分析器就可以使用了。不幸的是,这将删除运行Web浏览器并自动连接调试器的选项。这在Visual Studio中如下所示:
控制台应用程序: enter image description here Web项目: enter image description here 是否有一种方法可以在仍然是控制台应用程序的情况下恢复此选项?
我尝试将以下内容添加到.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浏览器并进行调试。


在“属性”(解决方案资源管理器中的项目)中,您应该有一个launchSettings.json文件,请问您能否将其包含在您的Web项目中?升级到VS 2019不会改变它的启动方式。 - Kody
这似乎不存在?如果有帮助的话,这是一个旧式的csproj文件。 - Nick
1个回答

4

简易解决方案(不确定是否有效,请让我知道):

  • 进入VS2017项目的属性,转到“调试”选项卡。您是否有启动浏览器的选项?(很抱歉,我目前没有安装2017版本)
  • 或者使用任何自定义命令启动?并将其指向您的调试实例。
  • (负面)的风险是不能在团队成员或环境之间进行交叉功能。

由于您提到升级到VS2019,我建议这是最好的解决方案。

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

此外,DotNetCore之所以能够工作的原因是DotNetCore取消了在IIS或类似环境中运行的概念,KestralMain入口方法连接,就像控制台应用程序一样,允许在你这种情况下减少混淆。无论您的目标框架是什么,VS2019都应支持该安排。


太棒了,我会尝试一些这个! - Nick
似乎即使在VS 2019中,您仍需要使用新的cs proj文件才能使其正常工作? - Nick
是的,这就是我的理解。从我所做的来看,最简单的方法通常是从头开始创建一个新的csproj,然后将文件复制到其中(因为您只需要复制目录,当您自动加载csproj时它们应该会被添加)。否则,可以尝试使用https://github.com/hvanbakel/CsprojToVs2017,但我曾经得到过一些奇怪的结果。 - Thymine
C#的配置真是一场噩梦。 - Nick
不幸的是,构建服务器无法构建该项目,因为它没有正确版本的NuGet或没有'.NETFramework,Version = v4.7.2 / win7-x64'的目标。确保已运行还原操作,并在项目的TargetFrameworks中包含'net472'。您还可能需要在项目的RuntimeIdentifiers中包含'win7-x64'。 - Nick
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接