Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# visual studio打开web浏览器+;控制台应用程序中的调试器,而不是web项目中的调试器_C#_Asp.net_Visual Studio_Csproj_Web Project - Fatal编程技术网

C# visual studio打开web浏览器+;控制台应用程序中的调试器,而不是web项目中的调试器

C# visual studio打开web浏览器+;控制台应用程序中的调试器,而不是web项目中的调试器,c#,asp.net,visual-studio,csproj,web-project,C#,Asp.net,Visual Studio,Csproj,Web Project,我最近使用自定义web服务器将一些项目从IIS ASP NET项目更改为控制台应用程序。在这两种项目中,我们都将项目作为控制台应用程序运行(因此我们实际上没有使用IIS) 但是,作为一个web项目,探查器不起作用。因此,我们将该项目更改为一个控制台应用程序,从而使探查器能够工作。不幸的是,这删除了运行web浏览器并自动附加调试器的选项。这在visual studio中显示如下: 控制台应用程序: 网络项目: 在仍然是控制台应用程序的情况下,是否有办法恢复此功能 我已尝试将此添加到.cspro

我最近使用自定义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>

假的
真的
52826
/
http://localhost:53107/
假的
真的
假的
但这似乎没有帮助。更现代的.net核心应用程序似乎也是控制台应用程序,但它们可以启动浏览器并附加调试器。我们正在使用visual studio 2017,但我们很乐意升级到2019年以解决此问题。JetBrains Rider IDE似乎还能够启动web浏览器并对任何类型的项目进行调试。

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

  • 进入VS2017中项目的属性,然后进入调试选项卡。您有启动浏览器的选项吗?(很抱歉,我目前没有在任何地方安装2017)
  • 或者启动任何自定义命令?并将该点指向调试实例
  • (负面)存在团队成员或环境之间不跨职能的风险

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

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


它在DotNetCore中工作的另一个原因是,DotNetCore摒弃了在IIS或类似系统中运行的概念,与控制台应用程序一样,它与
Main
输入方法相连接,从而减少了在类似情况下的混乱。无论您的目标框架是什么,VS2019都应该支持这种安排。

在属性(在解决方案资源管理器的项目中)中,您应该有一个launchSettings.json文件,您可以在问题中为您的web项目包含该文件吗?升级到VS 2019不会改变它的发布方式。这似乎不存在?这是一个老式的csproj文件,如果有帮助,我会尝试一下!似乎即使在VS2019中,你也需要使用新的cs proj文件来实现这一点?是的,这是我的理解。根据我所做的,通常最简单的方法是从头开始创建一个新的csproj,然后将文件复制到其中(因为你只需要复制目录,当你自动加载csproj时应该添加目录),否则会有,但我已经让它产生奇怪的结果上帝c#配置真是一个噩梦,生成服务器无法生成项目,因为它没有正确的nuget版本,或者没有“.NETFramework,version=v4.7.2/win7-x64”的目标。确保已运行还原,并且已将“net472”包含在项目的TargetFrameworks中。您可能还需要在项目的运行时标识符中包含“win7-x64”。