C# 如何使用VS代码调试.NETMVC项目
我安装了Visual Studio 2019,但我更喜欢使用VS代码。经过数小时的研究,我对什么可以调试,什么不能调试感到困惑C# 如何使用VS代码调试.NETMVC项目,c#,.net,visual-studio-code,vscode-debugger,C#,.net,Visual Studio Code,Vscode Debugger,我安装了Visual Studio 2019,但我更喜欢使用VS代码。经过数小时的研究,我对什么可以调试,什么不能调试感到困惑 我已经安装了C#扩展 我创建了一个launch.json和 tasks.json { "version": "0.2.0", "configurations": [ { "name": ".NET Core
- 我已经安装了C#扩展
- 我创建了一个launch.json和
tasks.json
{ "version": "0.2.0", "configurations": [ { "name": ".NET Core Launch (web)", "type": "clr", "request": "launch", "preLaunchTask": "build", "program": "{path-to-my-project}.dll", "args": [], "cwd": "{myNameSpace}", "stopAtEntry": false, "serverReadyAction": { "action": "openExternally", "pattern": "\\bNow listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" }, "sourceFileMap": { "/Views": "${workspaceFolder}/Views" }, "logging": { "moduleLoad": false } }, { "name": ".NET Core Attach", "type": "clr", "request": "attach", "processId": "${command:pickProcess}" } ] }
配置程序需要指向EXE。而我的应用程序生成了一个DLL
如何使用VS代码调试.NET MVC(非核心)web应用程序?
解决方案
我跟着ruslan,gilmutdinov回答下面的问题,它起作用了!它没有我想象的那么复杂。您只需单击vscode上的调试按钮即可
然后单击创建launch.json文件
之后,它将请求运行时。为此选择.NET并选择您的启动项目。然后可以在项目路径中看到launch.json文件。现在,您可以在任何地方添加调试点,然后按f5键,假设您的.NET Framework web应用程序名为MyWebApp
,并且您希望在端口5521
上对其进行调试。以下是如何在VSCode中设置调试:
向VSCode添加扩展名
将以下内容添加到PATH环境变量:
构建您的项目:
打开.vs\MyWebApp\config\applicationhost.config
并设置您的
:
确保Optimize
设置为false,并将调试选项设置为“便携式”:
launch.json:
您将获得以下用于在VSCode中调试的选项:
现在你所要做的就是启动启动WebApp
,然后启动并连接Chrome
。
调试愉快 检查.NET是否没有选项。我看到了.NET Core的一个选项。也许你可以尝试添加一个自定义的launch.json。谢谢你的详细回答。我认为这几乎奏效了。当我启动Start WebApp时,VS Code向我显示此错误“当前没有运行具有指定名称的进程”。终端中是否出现任何错误?当我运行命令时,我得到了。cmd窗口只是闪烁,然后我得到了错误。不管我如何让它工作。我在args到iisStart的路径错误。现在工作!非常感谢你的帮助
msbuild: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin
iisexpress: C:\Program Files\IIS Express\
chrome: C:\Program Files (x86)\Google\Chrome\Application
cd MyWebApp
msbuild MyWebApp.sln -m
<sites>
<site name="MyWebApp" id="1">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="W:\Projects\NET\MyWebApp\MyWebApp" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:5521:localhost" />
</bindings>
</site>
<siteDefaults>
<!-- To enable logging, please change the below attribute "enabled" to "true" -->
<logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
<traceFailedRequestsLogging directory="%AppData%\Microsoft" enabled="false" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>full</DebugType>
<Optimize>false</Optimize>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>portable</DebugType>
<Optimize>false</Optimize>
</PropertyGroup>
{
"version": "2.0.0",
"tasks": [
{
"label": "msbuild",
"command": "msbuild.exe",
"type": "shell",
"args": [
"/p:Configuration=Debug",
"/t:build",
"-m"
],
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
},
{
"label": "iisStart",
"type": "shell",
"dependsOn": "msbuild",
"command": "Start-Process",
"args": ["iisexpress.exe", "/config:${workspaceFolder}\\.vs\\MyWebApp\\config\\applicationhost.config /site:MyWebApp"],
"presentation": {
"reveal": "silent",
}
},
{
"label": "iisStop",
"type": "shell",
"command": "Stop-Process",
"args": ["-Name", "iisexpress"]
},
]
}
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Chrome",
"request": "launch",
"type": "pwa-chrome",
"webRoot": "${workspaceFolder}",
"runtimeArgs": [
"http://localhost:5521/",
"--new-window",
"--remote-debugging-port=9222"
]
},
{
"name": "Attach to Chrome",
"port": 9222,
"request": "attach",
"type": "pwa-chrome",
"webRoot": "${workspaceFolder}"
},
{
"name": "Start WebApp",
"type": "clr",
"request": "attach",
"processName": "iisexpress",
"preLaunchTask": "iisStart",
"postDebugTask": "iisStop",
},
],
"compounds":[
{
"name": "Launch & Attach Chrome",
"configurations": ["Launch Chrome", "Attach to Chrome"]
}
]
}