首先,Visual Studio Code的最新更新确实支持为. NET Framework构建和调试项目,但非常有限。 GitHub page for OmniSharp(负责C#扩展)表示: C#扩展支持有限的完整. NET Framework调试。它只能调试使用portable PDBs的64位应用程序。 但是,即使在阅读了许多关于这个主题的问题和讨论之后,我仍然有点不清楚必要的步骤是什么,所以我将在这里展示一个小指南,其中包括我所遵循的步骤,这些步骤对我有效,希望对你也有效。 1.必要的文件/文件夹包括: a.将.vscode与launch.json和tasks.json结合。 b. bin\Debug文件夹,其中包含. exe应用程序和可能要创建引用的程序集。 d. <project>.csproj和Program.cs文件。 即,可选地,批处理文件,其目的将在后面描述。 1.安装MSBuild 15 (2017)。
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"version": "0.2.0",
"configurations": [
{
"name": ".NET Launch (console)",
"type": "clr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/bin/Debug/net47/FullNetInVsCode.exe",
"args": [],
"cwd": "${workspaceFolder}",
// For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
"console": "internalConsole",
"stopAtEntry": false,
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": ".NET Attach",
"type": "clr",
"request": "attach",
"processId": "${command:pickProcess}"
}
,]
}
遗憾的是,它没有针对C/C的智能感知功能,只有语法突出显示:编辑code.visualstudio.com/docs/languages:也没有为C/C集成调试器。不过git集成真的很不错!调试器似乎更适合Web应用程序,但可以为node.js工作 虽然这并没有指定C#,但显然适用相同的标准(即没有调试器和编译功能)。 引用自对What exactly is Visual Studio Code?的第一个答案的评论
5条答案
按热度按时间mcdcgff01#
首先,Visual Studio Code的最新更新确实支持为. NET Framework构建和调试项目,但非常有限。
GitHub page for OmniSharp(负责C#扩展)表示:
C#扩展支持有限的完整. NET Framework调试。它只能调试使用portable PDBs的64位应用程序。
但是,即使在阅读了许多关于这个主题的问题和讨论之后,我仍然有点不清楚必要的步骤是什么,所以我将在这里展示一个小指南,其中包括我所遵循的步骤,这些步骤对我有效,希望对你也有效。
1.必要的文件/文件夹包括:
a.将
.vscode
与launch.json
和tasks.json
结合。b.
bin\Debug
文件夹,其中包含. exe应用程序和可能要创建引用的程序集。d.
<project>.csproj
和Program.cs
文件。即,可选地,批处理文件,其目的将在后面描述。
1.安装MSBuild 15 (2017)。
<project>.csproj
文件中:Project Sdk="Microsoft.NET.Sdk"
更改为Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
。PropertyGroup
中,我们必须将OutputType
设置为Exe
(默认值可能为dll
),删除TargetFramework
属性,替换为值为v4.6.1
的TargetFrameworkVersion
(例如,对于. NET框架4.6.1,它可以是4.7),最后放入运行时win-x64和win7-x64(以及编译器可能会抱怨的任何其他运行时)。一些评论:使用的条件表明这些属性仅在传递给编译器的配置为Debug且Platform为"AnyCPU"时适用,您可能希望插入具有不同值的其他条件,甚至根本不使用条件;这里最重要的值是:* * PlatformTarget属性必须是x64,并且调试类型必须是可移植的;输出路径设置为bin\Debug。
Program.cs
,以便编译器能够找到它:整个事情应该看起来像这样:
launch.json
:MyLauncher
),其类型必须为clr,并且指向您的程序;将preLaunchTask
设置为手动配置的(例如"mybuild"
),手动配置的preLaunchTask
将在tasks.json
中指定;配置的一个例子是:tasks.json
:"mybuild"
。(path)\MSBuild.exe
(或者msbuild.exe
,如果它在%PATH%
中的话)文件中的参数来构建项目。下面显示了一个例子,注意我已经将Configuration设置为Debug,将platform设置为AnyCPU,这与我在.csproj
文件中设置的条件相匹配。还要注意,\"AnyCPU\"
中的反斜线是因为使用了引号。.bat
文件;在我的例子中,MSBuild.exe
的路径有空格,这会在任务运行时生成错误,因此我将以下代码放入.bat
文件中(将记事本保存为name.bat
):然后将
"mybuild"
任务设置为:其中
build.bat
是我用前面的代码创建的批处理文件。MyLauncher
:MyLauncher
,MyLauncher
将首先使用MSBuild 15生成项目,然后运行exe文件原来是这样。
以下是一些参考资料:
x9ybnkn62#
我刚刚创建了一个简单的控制台应用程序并定制了csproj文件,然后,我可以将OmniSharp调试器附加到一个完整的.NET框架应用程序,csproj文件如下所示:
我只是按照official documentation:我将
TargetFramework
更改为在.NET4.7上运行,将PlatformTarget
更改为64位,将DebugType
更改为便携式。此外,我更新了launch.json:
在这个文件中,我只是将两个JSON对象中的
type
更改为clr
,并将program
定位到exe文件。然后,我可以设置一个断点,只需按F5键就可以在完整的.NET框架上开始调试:
dtcbnfnu3#
https://code.visualstudio.com/docs/languages/csharp
引用:
注意:VS代码不支持调试在桌面. NETFramework上运行的应用程序。
看起来Visual Studio的"全胖" IDE仍然是. Net Framework的一个要求。
mv1qrgav4#
遗憾的是,它没有针对C/C的智能感知功能,只有语法突出显示:编辑code.visualstudio.com/docs/languages:也没有为C/C集成调试器。不过git集成真的很不错!调试器似乎更适合Web应用程序,但可以为node.js工作
虽然这并没有指定C#,但显然适用相同的标准(即没有调试器和编译功能)。
引用自对What exactly is Visual Studio Code?的第一个答案的评论
eagi6jfj5#
首先,安装Visual Studio 2019生成工具
在VS代码工作区中添加.vscode文件夹并添加tasks.json以生成项目。下面是tasks.json的示例,主要用于任何.Net Framework项目。
下一步是使F5可以使用VS代码。为了使其工作,请在.vscode文件夹中添加launch.json
注:请根据您的应用程序更改“program”和“cwd