我在MacOS中安装了两个版本的Unity,一个是4.7版本,一个是5.6版本,在5.6版本中使用VSCode打开项目时,可以正常代码提示和查看,但是打开4.7版本的项目时,无法正常提示和查看。
经过研究,发现Unity4.7生成的项目文件(*.csproj)中,有以下几项:
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
但由于该版本无法找到,导致OmniSharp加载失败。由于修改VSCode代码,将TargetFrameworkVersion中的版本替换为2.0,其它两项去掉。
另一个出现加载问题的项为:
<Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2013\UnityVS.CSharp.targets" />
这个目标无法找到,也会导致加载失败。
可以修改为:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
修改后,可以Restart OmniSharp,这样就可以正常加载了。