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
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg0NS8zN2U4OTNlYTUzOGFjODA3MTVmZWQwNTk1YTk0YWE5NS5wbmc%3D.png?w=700&webp=1)
一旦 IDE 有更新
就可以点击 “Update” 按钮安装更新
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkxNS8zZGU4NzJlY2RhNGY4NTQ5NDVlNDZkMTY5ZThiMWFjYi5wbmc%3D.png?w=700&webp=1)
另外,确保你已经勾选了
????
“ .NET Core cross-platform development”
这个 workload
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkxOS9mYWJhMTU0NWZmYTg5Y2JlYTU0YjVjMmYwZDhiYTM1Zi5wbmc%3D.png?w=700&webp=1)
时间久了,随着 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。这些小版本通常是安全更新。
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYxMC8zYzg4YWQzZGQ4M2Y1YmIyZjBhNTgwZmRlYWY1ZmM1YS5wbmc%3D.png?w=700&webp=1)
要查看机器上的 .NET Core SDK 已经 runtime
可以用 dotnet --info 命令:
插件
ReSharper
我个人必用的插件是 ReSharper,这个是收费插件,但提供了非常完备和强大的功能,比如批量重命名、整理 namespace、推荐使用新版 C# 的语法等等。
并且,它很早就支持 .NET Core 了。如果你有不错的开源项目,也可以向JetBrains申请免费使用。
????产品地址????
https://www.jetbrains.com/resharper/
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzIxOC9lOTQ5NDE4ZGQ2NjRlYTIyYmY1YWY4ZDIzY2ViOGZmMi5wbmc%3D.png?w=700&webp=1)
对于.NET Core 来说,我们经常写依赖注入,那么有了 ReSharper,你就可以让插件一键帮你生成构造函数注入,省时省力。
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzM0My80ZDYyODdmYTgyZDcwZDZlOTI2YjcwODc5NmEzYWZjZi5wbmc%3D.png?w=700&webp=1)
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE2Ny81YmFhMGVkZjNmMjc1Mjk2ZmQwOWJlNTlhYTA0ODUwNy5wbmc%3D.png?w=700&webp=1)
Web Essentials
另一套插件是 Web Essentials ,在 VS2017版里,它是一个插件全家桶,其中包含了众多子插件都可以独立安装。
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzcwOC9hMjk3MWQ2MWI4NzVhMjA4YzU4NmE0MDQ0MGZlY2Q0Yy5wbmc%3D.png?w=700&webp=1)
在 Tools > Extensions and Updates 下就是 VS2017的插件窗口,点击 Online 选项卡,然后搜索 "Web Essentials",即可下载安装这个全家桶。
桶里的功能实在太多,我挑几个有代表性的给大家的介绍一下。
Bundle & Minifier
这是一款在编程或编译时压缩和打包 CSS/JS 文件的插件。通过工程目录下的 bundleconfig.json 文件定义压缩和打包规则,一目了然。然后你在编辑保存源文件的时候,目标打包文件就会自动更新。
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE2Mi84YTZmOTRlOWM5OTdkMzhhOWI2NGRkZjIzNDcwNzc4Mi5wbmc%3D.png?w=700&webp=1)
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQwMC9kNjUxYWJlYzE5Zjc3ZmQyMGI1ZDNmZDc3NTk0MTg4MC5wbmc%3D.png?w=700&webp=1)
在脱离 VS 的环境下,例如你的 CI 环境,也可以做到编译时重新生成打包文件。只需要指定"Enable bundle on build" 即可。
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzIxMi9iNzA0NDZhMGQzZjE5YzQzYTM5OWFjYmVlNzUxMzRiYy5wbmc%3D.png?w=700&webp=1)
实际上这个命令的作用是在你的工程文件里添加了一个NuGet包:
<PackageReference Include="BuildBundlerMinifier" Version="2.8.391" />
Open Command Line
.NET Core 经常需要手工敲命令来装逼,例如使用 dotnet 或 libman 的 CLI 命令。这款插件能够帮助你在选定的路径直接打开 cmd 或 PowerShell。
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ4NC9jMjNlMjA1NGYyOGM4MmQzY2JjYzYwYWY4NTNjN2U4NC5wbmc%3D.png?w=700&webp=1)
设置
关于皮肤
VS 默认是浅色皮肤的,许多人将它改成黑色,除了能装逼以外,是有实用道理的。
注意看红线圈出的接口类型的颜色,这是黑色皮肤下的。
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzUwMy9iMzhjOTMxNTkwNmY4ODZmNjQ3ZWI0MTk3YWQxNmUyZi5wbmc%3D.png?w=700&webp=1)
如果用默认的(Blue)浅色皮肤,就难以辨别是接口还是类了:
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzMwNi8xNjBiM2M2ZjFiNTFhNDc3ZWYzN2M2ZGE5YzliN2E4YS5wbmc%3D.png?w=700&webp=1)
而.NET Core 里因为依赖注入的大量使用,一定是会遇到很多接口的,所以建议大家实用黑色皮肤,既能装逼,又能看清接口类型。
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU5Ni83MzU3OWYzNGZkY2ZiODI0MGUwY2JlNjU1MGVmMjhkNC5wbmc%3D.png?w=700&webp=1)
鸡肋追踪
在.NET Core 的工程里,VS 默认会在 Solution Explorer 里自动选中当前正在编辑的文件,这个鸡肋功能通常会造成麻烦,特别是你在编辑同一个文件夹的临近文件,而又临时需要看另一个工程目录里的文件。这个自动选中当前文件的功能会让我们不得不来回拖滚动条。其实是可以关闭的。
在 Project and Solutions 里,取消勾选 Track Active Item in Solution Explorer 即可。
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU4My9kZTUxNWEwOWM2MWE3NTgxNjc2M2UzNWVhMDUwZDM3Zi5wbmc%3D.png?w=700&webp=1)
自动换行
讲文明的程序员写代码会注意格式,然而我们没法控制团队里每一个成员都和自己一样牛逼,有时候也有一些三方或者工具生成的代码是不换行的。拖水平滚动条虽然能治疗颈椎病,但是显然降低了生产效率。我通常会把VS的自动换行打开。
在 Text Editor > All Languages 里,勾选 Word wrap
![实用帖 | 使用Visual Studio开发.NET Core推荐设置 实用帖 | 使用Visual Studio开发.NET Core推荐设置](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQzMi84MmY2MzI1NzFmZjIzNDYxZDY0M2FkNjYzZjk0M2U4MC5wbmc%3D.png?w=700&webp=1)
(图片来源于网络)
感谢看到这里
????
以上就是博主开发.NET Core程序时
使用的Visual Studio配置
欢迎大家留言补充!
原文地址:https://edi.wang/post/2019/1/28/recommended-visual-studio-configuration-for-net-core-development
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com