完美解决vscode写unity脚本找不到.net framework的问题/无智能提示的问题

在看了这篇文章后博主决定用vscode写C#,Unity Development with VS Code,但是打开vscode,c#的插件总会报错,并且无法实现自动提示,代码补全等功能,官方提示的出错信息大概是这样的:

The reference assemblies for framework “.NETFramework,Version=v4.7.1” were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed.

可以看到,Assembly-CSharp.csproj中有这样一行:
完美解决vscode写unity脚本找不到.net framework的问题/无智能提示的问题
顺着这个,有人说这是因为我们的framework安装的没有这么高,可以改成安装的这个版本:
完美解决vscode写unity脚本找不到.net framework的问题/无智能提示的问题
经过尝试,失败了。
然后我就下载了更高的4.7.1版本,下载了之后这个文件夹里的内容却并没有更新,此时错误还是一样的,报错提示又说v.4.0.30319找不到,此时我下载的是.net framework Developer Pack版本,于是我继续查:
Unity VsCode 报错 Failed to load project file Assembly-CSharp.csproj
其实我们的问题是一样的,我以为有救,然后还是失败了,下载的runtime提示安装的有更高版本,于是我继续找问题。
完美解决vscode写unity脚本找不到.net framework的问题/无智能提示的问题
确定已安装的 .NET Framework 版本
官方写的很详细啦,然后在注册表里发现自己已经安装了4.8.1版本,只是之前的那个目录没有体现,恍然大悟,所以我们是不用安装那个runtime版本的,下载安装.net framework Developer Pack就可以,我们的问题其实是如何在高版本下使用低版本,然后就是要找这个版本它在哪里!
真正帮我解决问题的是这个链接:
Unity2018.3.X使用vscode出现.NET Framework,Version=v4.5 were not found.( OmniSharp in VS Code error)
顺着目录,我终于找到了我们安装的这个版本:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.7.1
最后,也是最重要的,就是加到环境变量里!在path下添加这个目录即可!
最后就会发现,终于有代码提示了。
完美解决vscode写unity脚本找不到.net framework的问题/无智能提示的问题
希望可以帮到遇到相同问题的朋友!

记录下安装前的准备:下载vscode和一堆C#和unity的插件,下载unity,下载.net core sdk,添加环境变量使之可以在命令行执行dotnet和csc命令,下载4.7.1版本的.net framework DevPack,系统提示哪个版就下载哪个版,下载好找一下位置添加到环境变量,在unity中设置用vscode写脚本,就可以很顺畅的使用啦!