VSCode搭建 .netcore 开发环境

news/2024/5/19 22:08:35 标签: vscode, .netcore, 策略模式

一、MacOS

笔者笔记本电脑上安装的是macOS High Sierra(10.13),想要尝试一下新版本的.netcore,之前系统是10.12时,.netcore 3.1刚出来时安装过3.1版本,很久没更新了,最近.net8出来了,想试一下,但是需要更新系统,于是安装了.netcore7,它的支持时间到2024年5月14日。

下载了.netcore7后,直接双击安装即可。安装后的路径为:/usr/local/share/dotnet

笔者VSCode的版本为1.85.1,需要安装C#插件,目前最新版本为2.14.8,但macOS 10.13目前最高只能安装v1.26.0版本的C#插件,不能安装更高的版本,否则不能调试。

在这里插入图片描述

另外还需要安装一个.NET Install Tool插件:

在这里插入图片描述
这样就可以在终端使用dotnet命令创建项目了,比如创建一个控制台应用:

$ dotnet new console
已成功创建模板“控制台应用”。

正在处理创建后操作...
正在还原 /Users/witton/Projects/cc/cc.csproj:
  正在确定要还原的项目…
  已还原 /Users/witton/Projects/cc/cc.csproj (用时 120 ms)。
已成功还原。

此时打开生成的Program.cs,并打上断点,切换到运行和调试工具栏,执行Generate C# Assets for Build and Debug,插件会自动生成launch.jsontasks.json两个文件:

在这里插入图片描述
launch.json

{
	"version": "0.2.0",
	"configurations": [
		{
			// 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/dotnet/vscode-csharp/blob/main/debugger-launchjson.md
			"name": ".NET Core Launch (console)",
			"type": "coreclr",
			"request": "launch",
			"preLaunchTask": "build",
			// If you have changed target frameworks, make sure to update the program path.
			"program": "${workspaceFolder}/bin/Debug/net7.0/cc.dll",
			"args": [],
			"cwd": "${workspaceFolder}",
			// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
			"console": "internalConsole",
			"stopAtEntry": false
		},
		{
			"name": ".NET Core Attach",
			"type": "coreclr",
			"request": "attach"
		}
	]
}

tasks.json:

{
	"version": "2.0.0",
	"tasks": [
		{
			"label": "build",
			"command": "dotnet",
			"type": "process",
			"args": [
				"build",
				"${workspaceFolder}/cc.csproj",
				"/property:GenerateFullPaths=true",
				"/consoleloggerparameters:NoSummary"
			],
			"problemMatcher": "$msCompile"
		},
		{
			"label": "publish",
			"command": "dotnet",
			"type": "process",
			"args": [
				"publish",
				"${workspaceFolder}/cc.csproj",
				"/property:GenerateFullPaths=true",
				"/consoleloggerparameters:NoSummary"
			],
			"problemMatcher": "$msCompile"
		},
		{
			"label": "watch",
			"command": "dotnet",
			"type": "process",
			"args": [
				"watch",
				"run",
				"--project",
				"${workspaceFolder}/cc.csproj"
			],
			"problemMatcher": "$msCompile"
		}
	]
}

此时按F5运行启动调试即可开始调试C#程序:

在这里插入图片描述
微软开发了一个新的插件C# Dev Kit,它提供了更加强大的功能,并且可以像VS那样使用解决方案资源管理器来管理项目。该插件需要C#插件为2.0及以上版本,但由于笔者的MacOS系统比较老了,C#插件2.0及以上版本不能进行调试,所以只能使用1.X来将就使用了。

如果是macOS 10.15及以上版本,就可以直接安装.net8了,VSCode插件也可以直接安装C# Dev Kit以及IntelliCode for C# Dev Kit插件了。但是由于.NET Install Tool插件目前仅支持7.x版本的.net,所以还需要安装.net 7runtime:runtime-7.0.14-macos-x64-installer

安装好后就可以使用F1调出.NET:新建项目...命令,来新建.net项目了:

在这里插入图片描述

选择项目模板:

在这里插入图片描述

比如选择控制台应用,创建好项目后,可以看到解决方案资源管理器

在这里插入图片描述

二、Windows

如果是Windows10,则可以直接安装最新的.net 8,并且安装上C# Dev Kit以及IntelliCode for C# Dev Kit,也不需要像macOS那样还需要安装.net 7runtime


http://www.niftyadmin.cn/n/5312045.html

相关文章

OpenHarmony - 基于ArkUI框架实现日历应用

前言 对于刚刚接触OpenHarmony应用开发的开发者,最快的入门方式就是开发一个简单的应用,下面记录了一个日历应用的开发过程,通过日历应用的开发,来熟悉基本图形的绘制,ArkUI的组件的使用,UI组件生命周期&a…

centos7下升级openssh9.4p1及openssl1.1.1v版本

背景:客户服务器扫描出一些漏洞,发现和版本有关,漏洞最高的版本是9.3p2,所以我们安装一个openssh9.4p1版本及openssl1.1.1v版本 虽然我们进行了镜像备份,为了安全先安装telnet以防止升级失败无法通过ssh连接服务器 一…

Neo4j备份

Step1:停服 关闭neo4j.bat console会话窗口即可 Step2: 备份 找到数据目录,并备份、压缩 copy即可 data - 20240108.7z Step3: 启动服务 进入命令行,并切换到neo4j 的bin目录下,通过命令"neo4j.bat console" 开启服务&#xf…

git ssh key 配置

一、Profile Settings-->SSH Keys 我们点击这里会有详情的文档介绍生成sshkey。 ssh-keygen -t rsa -b 2048 -C "邮箱" --回车... 将生成的id_rsa.pub粘贴到如下保存 git config --global user.name "用户名" git config --global user.email "邮…

STL——stack,queue详解

目录 💡stack 💡基本概念 常用接口 💡queue 💡基本概念 💡常用接口 💡stack 💡基本概念 栈(stack):一种特殊的线性表,其只允许在固定的一端…

CTF-PWN-沙箱逃脱-【seccomp和prtcl-2】

文章目录 沙箱逃脱prtcl题HITCON CTF 2017 Quals Impeccable Artifactflag文件对应prctl函数检查源码思路exp 沙箱逃脱prtcl题 HITCON CTF 2017 Quals Impeccable Artifact flag文件 此时的flag文件在本文件夹建一个即可 此时的我设置的flag为 对应prctl函数 第一条是禁止…

React16源码: React中创建更新的方式及ReactDOM.render的源码实现

React当中创建更新的主要方式 ReactDOM.render || hydrate 这两个API都是我们要把整个应用第一次进行渲染到我们的页面上面能够展现出来我们整个应用的样子的一个过程这是初次渲染 setState 后续更新应用 forceUpdate 后续更新应用 replaceState 在后续被舍弃 关于 ReactDOM…

【OCR】实战使用 - 如何提高识别文字的精准度?

实战使用 - 如何提高文字识别的精准度 我们在平常使用OCR的时候,经常会出现文字识别不精准的情况,我们改如何提高文字识别的精度呢? 以下是一些提高OCR(Optical Character Recognition,光学字符识别)文字识…