配置:win7下 vscode 配置unity 插件,并实现自动补全C#代码

本文解决的问题:.Net Framework版本不匹配导致无法自动补全C#

安装插件
C#
C# extension
Debugger for Unity
Unity Tools

自动补全
版本:win7 + unity2019.3.0f

第一步:确保OmniSharp工具选中的是正确的sln:
从unity打开一个C#文件,在vscode界面内:

  1. ctrl+shift+P
  2. 输入Omni
  3. 从自动补全中选择“OmniSharp:select project”
  4. 选择当前unity对应的sln。

第二步
打几行代码,测试一下自动补全功能,若成功则完毕。做梦

如果不成功,注意Logout。如果发现 “.Net FrameWork,Version=vXX”字样,则存在以下两个选项:其他的问题我就不知道了

  1. 不安装新.Net FrameWork,直接更改项目的配置为当前电脑.Net FrameWork的版本。
  2. 依据项目要求的版本安装新.Net FrameWork。

以下详细叙述过程:

配置成功的关键,是Assembly-CSharp-Editor.csproj和Assembly-CSharp.csproj文件(下文会提到)中TargetFrameworkVersion标签内的版本号与你拥有的版本一致。

选项1:

#写在最前:经过实测,选择v3.5的版本虽然能实现自动补全,但可能导致大量标红的下划线非要这么选我也拦不住你,来吧

a. 查询当前已安装.Net FrameWork版本:在资源管理器中输入“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework”。
配置:win7下 vscode 配置unity 插件,并实现自动补全C#代码
选择你想要的版本,如“v4.5”。

b. 回到vscode中打开的C#文件,注意资源管理器,可以看到两个文件《Assembly-CSharp-Editor》和《Assembly-CSharp》,
配置:win7下 vscode 配置unity 插件,并实现自动补全C#代码
分别打开并修改标签,修改为你选择的版本号。

< TargetFrameworkVersion >v4.5< /TargetFrameworkVersion>

c. 关闭vscode,再次从unity打开一个C#文件。检查是否成功。

选项2:

a. 如果没有对文件进行任何修改,只进行了“OmniSharp”一步,那么在Logout中看到的netframework版本就是unity要求的。比如v4.5.1。

先检查你是否已经拥有这个版本:

C:\Program Files (x86)\Reference
Assemblies\Microsoft\Framework.NETFramework

如果你拥有v4.5.1,但标签中要求v4.5,那么也可以修改标签为v4.5.1,而不去下载对应版本。

b. 否则,从这个网站下载:.Net FrameWork安装包下载网址

依照向导安装完毕。若文件夹下出现对应版本号的文件夹,则安装成功。
配置:win7下 vscode 配置unity 插件,并实现自动补全C#代码

c. 关闭vscode,再次从unity打开一个C#文件。无意外的话已经能自动补全。

如果经过这番折腾还是不行,我也布吉岛了…………