Visual Studio 一直是.NET程序员的好伙伴,如今虽然.NET Core的开发可以用VSCode等其他环境,但VS依旧有强大的优势。

今天来介绍下如何让VS用得更顺手的技能

Here We Go!


基本配置

首先要搞清楚的一点是,并不是所有版本的Visual Studio都支持.NET Core开发,甚至2017的早期版本也不行。有些童鞋误以为只要安装了.NET Core的SDK,就可以使用很久以前安装的VS2017开发,这会导致代码无法编译通过。

例如:对于.NET Core 2.1版本,至少要求 VS2017 升级到15.7。目前.NET Core 最新的 release 是2.2,所以我推荐大家始终保持 VS2017 升级到最新。

升级方法

?

在开始菜单里搜索 Visual Studio Installer

一旦 IDE 有更新

就可以点击 “Update” 按钮安装更新

另外,确保你已经勾选了

?

“ .NET Core cross-platform development” 

这个 workload

时间久了,随着 VS 的每次更新,你的机器里会出现各种版本的 .NET Core SDK。我的习惯是保留当前版(2.2)和LST(2.1)的最新 SDK,其他都可以卸载。

?其中2.1.202,是 VS 2017自作聪明装上的,对应的其实是 .NET Core 2.0的版本,如果你不开发2.0的话,完全可以手工卸载。2.1.503对应的是 .NET Core 2.1.7,2.2.103对应的 是.NET Core 2.2.1。这些小版本通常是安全更新。

要查看机器上的 .NET Core SDK 已经 runtime

可以用 dotnet --info 命令:

插件

ReSharper

我个人必用的插件是 ReSharper,这个是收费插件,但提供了非常完备和强大的功能,比如批量重命名、整理 namespace、推荐使用新版 C# 的语法等等。

并且,它很早就支持 .NET Core 了。如果你有不错的开源项目,也可以向JetBrains申请免费使用。

?产品地址?

https://www.jetbrains.com/resharper/

对于.NET Core 来说,我们经常写依赖注入,那么有了 ReSharper,你就可以让插件一键帮你生成构造函数注入,省时省力。

Web Essentials

另一套插件是 Web Essentials ,在 VS2017版里,它是一个插件全家桶,其中包含了众多子插件都可以独立安装。

在 Tools > Extensions and Updates 下就是 VS2017的插件窗口,点击 Online 选项卡,然后搜索 "Web Essentials",即可下载安装这个全家桶。

桶里的功能实在太多,我挑几个有代表性的给大家的介绍一下。

Bundle & Minifier

这是一款在编程或编译时压缩和打包 CSS/JS 文件的插件。通过工程目录下的 bundleconfig.json 文件定义压缩和打包规则,一目了然。然后你在编辑保存源文件的时候,目标打包文件就会自动更新。

在脱离 VS 的环境下,例如你的 CI 环境,也可以做到编译时重新生成打包文件。只需要指定"Enable bundle on build" 即可。

实际上这个命令的作用是在你的工程文件里添加了一个NuGet包:

<PackageReference Include="BuildBundlerMinifier" Version="2.8.391" />

Open Command Line

.NET Core 经常需要手工敲命令来装逼,例如使用 dotnet 或 libman 的 CLI 命令。这款插件能够帮助你在选定的路径直接打开 cmd 或 PowerShell。

设置

关于皮肤

VS 默认是浅色皮肤的,许多人将它改成黑色,除了能装逼以外,是有实用道理的。

注意看红线圈出的接口类型的颜色,这是黑色皮肤下的。

如果用默认的(Blue)浅色皮肤,就难以辨别是接口还是类了:

而.NET Core 里因为依赖注入的大量使用,一定是会遇到很多接口的,所以建议大家实用黑色皮肤,既能装逼,又能看清接口类型。

鸡肋追踪

在.NET Core 的工程里,VS 默认会在 Solution Explorer 里自动选中当前正在编辑的文件,这个鸡肋功能通常会造成麻烦,特别是你在编辑同一个文件夹的临近文件,而又临时需要看另一个工程目录里的文件。这个自动选中当前文件的功能会让我们不得不来回拖滚动条。其实是可以关闭的。

在 Project and Solutions 里,取消勾选 Track Active Item in Solution Explorer 即可。

自动换行

讲文明的程序员写代码会注意格式,然而我们没法控制团队里每一个成员都和自己一样牛逼,有时候也有一些三方或者工具生成的代码是不换行的。拖水平滚动条虽然能治疗颈椎病,但是显然降低了生产效率。我通常会把VS的自动换行打开。

在 Text Editor > All Languages 里,勾选 Word wrap

(图片来源于网络)

感谢看到这里

?

以上就是博主开发.NET Core程序时

使用的Visual Studio配置

欢迎大家留言补充!

原文地址:https://edi.wang/post/2019/1/28/recommended-visual-studio-configuration-for-net-core-development

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

实用帖 | 使用Visual Studio开发.NET Core推荐设置相关推荐

  1. linux studo命令,在 Linux 上使用 Visual Studio 开发环境

    原标题:在 Linux 上使用 Visual Studio 开发环境 为了向大家介绍 "Linux 上的 ASP.NET Core",我需要一个 Linux VM,通过远程桌面连上 ...

  2. Visual Studio 开发入门

    Visual Studio 开发入门 1. 版本 2. 高效性的常用功能 3. 安装Visual Studio IDE 4. 创建一个程序 5. 使用重构和IntelliSense 6. 调试代码 7 ...

  3. 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )

    文章目录 一.Visual Studio 中安装 " 使用 C++ 的移动开发 " 开发库 二.Visual Studio 中安装的 Android SDK 和 NDK 位置 三. ...

  4. 有关提高visual studio开发效率的方法

    有关提高 visual studio 开发效率的方法见下面的参考文章: http://www.iplaysoft.com/vs2010-features.html  http://www.cnblog ...

  5. 解决无法连接到visual studio开发服务器的问题

    今天vs抽风,调试网站出现下图那样: 然后我开始百度搜索 "无法连接到visual studio开发服务器" 出现很多文章: 打开一篇问题,看了里面的内容, 那个解决办法也不是最好 ...

  6. 无法连接到 visual studio 开发服务器

    关于Visual Studio无法连接到Visual Studio 的Localhost Web服务器问题 原文地址:http://www.cnblogs.com/SanMaoSpace/archiv ...

  7. visual studio开发工具的C#主流控件属性一览表

    visual studio开发工具的C#主流控件属性一览表 visual studio开发工具的C#主流控件属性一览表 详细的介绍了各控制属性的详细中文介绍 C#控件及常用设计整理 1.窗体  1.常 ...

  8. Visual Studio开发MFC项目OCX控件添加使用控件方法

    1.在Windows系统中注册OCX控件 在OCX控件目录,右键新建一个文本文档,将文件名和扩展名改为"双击注册.bat",添加如下注册脚本: cd /d %~dp0 RegSvr ...

  9. Visual Studio开发Windows Mobile程序

    转自:http://developer.51cto.com/art/200908/144102.htm Visual Studio 2005无疑是开发Windows Mobile的最佳工具,其本身就集 ...

最新文章

  1. Python+OpenCV 图像处理系列(7)—— 图像色彩空间及转换
  2. PCL—低层次视觉—点云分割(基于凹凸性)
  3. 信号与系统2021年期末考试命题
  4. PAT甲级1004 Counting Leaves (30分):[C++题解]树、邻接表存储树、dfs遍历树
  5. Cisco开CASE方法
  6. 【阿里妈妈营销科学系列】第七篇:目标群组发现
  7. C语言再学习——分支结构
  8. mysql运行状态监控研究内容_如何监控mysql主从的运行状态shell脚本实例介绍
  9. mac服务器 文件无法删除文件夹,macOS 10.15.4 无法删除一个空文件夹
  10. python时间str转datetime_深入了解Python中的小知识
  11. oracle下的数据库实例、表空间、用户及其表的区分
  12. [bzoj3670] [NOI2014] [lg2375] 动物园
  13. 53. 使 Ajax 可缓存(14)
  14. axure 2021.04.26
  15. python中的成员运算符用于判断指定_Python中的成员运算符用于判断指定序列中是否包含某个值...
  16. java设置铃声_我的Android进阶之旅------gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声...
  17. 泡菜 亚硝酸_不要相信泡菜
  18. 同构图异构图二部图区别
  19. 规范哈夫曼编码和Deflate算法
  20. iPhone4/4s 5.1.1版本越狱后无法连接iTunes,出现0xE8000012错误的解决方法

热门文章

  1. 梦回编程- 由LD_LIBRARY_PATH引发JNI的理解
  2. 【Linux学习009】脚本编程之变量、条件测试和条件判断
  3. 归档日志 delete input 和delete all input 区别
  4. MVP on Board 没用小技巧
  5. 移除 ZooKeeper 的 kafka 2.8 ,更快了
  6. 如何运用并行编程Parallel提升任务执行效率
  7. 知名Node.js组件存在代码注入漏洞
  8. .NET架构小技巧(8)——优待异常
  9. COSCon‘20 参会指南 | 你想知道的都在这里(文末有福利)
  10. Dotnet Core异常处理的优雅实践