使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试
如果你是开发个人项目,那就直接用 Visual Studio Community 版本吧,对个人免费,对小团体免费,不需要这么折腾。
如果你是 Mac / Linux 用户,不想用 Visual Studio for Mac 版;或者不想用 Visual Studio for Windows 版那么重磅的 IDE 来开发简单的 .NET Core 程序;或者你就是想像我这么折腾,那我们就开始吧!
点击这里下载正式或者预览版的 .NET Core 然后安装
点击这里下载 Visual Studio Code 然后安装
在 Visual Studio Code 里安装 C# for Visual Studio Code 插件(步骤如下图所示)
搜索的时候,推荐使用 OmniSharp 关键字,因为这可以得到唯一的结果,你不会弄混淆。如果你使用 C# 作为关键字,那需要小心,你得找到名字只有 C#,点开之后是 C# for Visual Studio Code 的那款插件。因为可能装错,所以我不推荐这么做。
对于新版的 Visual Studio Code,装完会自动启用,所以你不用担心。我们可以后续步骤了。
准备一个空的文件夹,这个文件夹将会成为我们解决方案所在的文件夹,也就是 sln 文件所在的文件夹。在这个空的文件夹中打开 VSCode,然后打开 VSCode 的终端。
在 VSCode 中的终端中输入:
> dotnet new console -o Walterlv.Demo
这样会在当前的文件夹中创建一个 Walterlv.Demo 的子文件夹,并且在此文件夹中新建一个名为 Walterlv.Demo 的控制台项目。
如果你观察我们刚刚创建的项目,你会发现里面有一个 csproj 文件和一个 Program.cs 文件。csproj 文件是 Sdk 风格的项目文件,而 Program.cs 里面包含最简单的 Hello World 代码:
using System; namespace Walterlv.Demo{ class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }}
我们会考虑在一个子文件夹中创建项目,是因为我们会一步步创建一个比较复杂的解决方案,用以演示比较完整的使用 VSCode 开发 .NET 程序的过程。
我们现在创建一个在 Visual Studio 会特别熟悉的解决方案,sln 文件。
使用以下命令创建一个解决方案文件:
现在,这个解决方案文件还是空的,不包含任何项目,于是我们把我们一开始创建的 Walterlv.Demo 项目加入到此 sln 文件中。
使用以下命令添加:
> dotnet sln add .\Walterlv.Demo\Walterlv.Demo.csproj
于是,我们的解决方案中,就存在一个可以运行的控制台项目了。
理论上,你按下 F5,选择 .NET Core 后就能自动生成调试所需的 launch.json 和 tasks.json 文件:
让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力
如果不能生成所需的文件,你可以使用以下博客中的方法,手动添加这两个文件:
手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力
在经过以上两篇博客中的方法之后,你将可以跑起来你的程序。
如果遇到了编译错误……呃这么简单的程序怎么可能遇到编译错误呢?一定是因为之前的操作有问题。可以考虑删除 bin 和 obj 文件夹,然后输入以下命令自行编译:
这个命令会还原 NuGet 包,然后使用 .NET Core 版本的 MSBuild 编译你的解决方案。在此之后,你并不需要总是输入此命令,只需要像 Visual Studio 一样按下 F5 即可调试。
现在我们演示如何引用项目。
首先使用以下命令创建一个类库项目:
> dotnet new classlib -o Walterlv.Library
将其添加到 sln 中。
> dotnet sln add .\Walterlv.Library\Walterlv.Library.csproj
于是我们的目录结构现在是这样的(稍微改了一点代码)。
然后让我们的 Walterlv.Demo 项目引用这个刚刚创建的项目:
> dotnet add Walterlv.Demo reference .\Walterlv.Library\
现在,我们即可在 Program.cs 中使用到刚刚 Class1.cs 中编写的方法(见上面截图中写的方法)。
不过,当你写下 Class1 后,会没有此名称,但有快速操作提示可以自动添加命名空间(就像没有装 ReSharper 的 Visual Studio 的效果一样)。
这时再按下 F5 运行,可以看到多输出了一个 walterlv is a 逗比 这样的提示,我们成功使用到了刚刚引用的类。
接下来介绍如何引用 NuGet 包。
> dotnet add Walterlv.Demo package Newtonsoft.Json
这样可以给 Walterlv.Demo 项目引用 Newtonsoft.Json 包。
接下来就像前面一节我们所描述的那样使用这个包里面的类就好了。
原文地址:https://blog.walterlv.com/post/develop-an-app-using-vscode-and-dotnet-cli.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试相关推荐
- 让 dotnet 命令行输出作为英文的方法
在我的设备上,默认的 dotnet 命令行都是输出中文,如我输入 dotnet build 命令,里面的错误提示也是中文.在我想要和国外的小伙伴报坑时,如果里面有很多中文,我觉得他将会看不懂,从而不理 ...
- 关于虚拟机纯命令行centos解决web上网认证的解决方案
关于虚拟机纯命令行centos解决web上网认证的解决方案 虚拟机版本:CentOS Linux release 7.1.1503 (Core) 在我们学校,有校园网的存在,导致我在配置虚拟机的时候遇 ...
- 利用vue-cli配合vue-router搭建一个完整的spa流程
好文章备忘录: 转自:https://segmentfault.com/a/1190000009160934?_ea=1849098 demo源码:https://github.com/1590123 ...
- vscode linux命令行启动,在命令行启动vscode
1.windows使用 code . 命令打开vscode 1.打开vscode安装位置,进入bin文件夹,复制路径 eg:E:\Microsoft VS Code\bin: 2.回到桌面,右键我的电 ...
- 图解命令行手动编译构建一个win32汇编程序
首先安装masm32 V11.0:安装完后出现下列对话框: 图没截好:下面图的 k. 是 link. :ktopPath是DesktopPath: 此段代码的含义是用WScript创建了一个快捷方式, ...
- Macbook 中如何通过命令行打开 vscode
作为 vscode 的重度用户,习惯通过命令启动 vscode,即: code . 在 Mac 中,设置方法如下: (1)打开 VSCode,使用快捷键 command + shift + p 打开命 ...
- mac用vscode打开html,Mac 命令行打开VsCode
释放双眼,带上耳机,听听看~! 命令行 命令行命令安装 安装 VSCode Shell 命令,按 Shift+Cmd+P 搜索 shell command install 回车即可. 命令行帮助 Vi ...
- 在命令行启动vscode
1.windows使用 code . 命令打开vscode 1.打开vscode安装位置,进入bin文件夹,复制路径 eg:E:\Microsoft VS Code\bin: 2.回到桌面,右键我的电 ...
- git命令行切换到某一个提交版本的分支
通常,我们需要在命令行下切换 分支,一般而言,我们将远程代码克隆(git clone http://xxx.com/project)到本地之后,切换分支使用git checkout -b branch ...
最新文章
- .Net Framework 3.5 结构图
- python小项目推荐项目-推荐 10 个有趣的 Python 项目
- Android 4.4 中 WebView 使用注意事项
- java 常用十种设计模式示例归纳 | 已打包请带走
- MySQL日期及时间加减函数
- Node + ts + puppeteer e2e前端自动化测试
- directly test Gateway frontend service in AG3 SICF
- 【XSY1594】棋盘控制 概率DP
- oracle package 函数,Oracle 存储过程procedure,函数function用法,以及package用法
- 从哲学源头思考自动驾驶网络架构设计
- 2018年三月份计算机一级考试试题,2018年3月计算机一级考试MSOFFICE模拟试题(4)
- Vue之$options
- OO思想(只留做自己看理解)
- 星号密码查看 android,侠客密码查看器怎么查看已输入的星号密码
- CAD迷你看图2019破解版|CAD迷你看图2019R5中文破解版下载
- 为什么要远离色情信息(转载)
- 技师学院计算机老师,技师学院计算机工程系组织开展观摩课活动
- Xmind用例导入到TAPD的方案(附代码)
- high sierra php,關於macOS High Sierra 10.13 中,XAMPP php7 安裝memcache的問題
- python入门学习_PythonTip