Unity+VSCodeで作業していると以下のエラーが出力され、VSCode上でのみエラーが出力される現象が発生したので対処方法をメモします。
[fail]: OmniSharp.MSBuild.ProjectLoader
"GetReferenceNearestTargetFrameworkTask" タスクが見つかりませんでした。次のことを確認してください。1.)プロジェクト ファイルの中のタスク名がタスク クラス名と同一である。2.)タスク クラスが public であり Microsoft.Build.Framework.ITask インターフェイスを実装する。3.)プロジェクト ファイルまたは "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin" ディレクトリに配置された *.tasks ファイルの中の <UsingTask> でタスクが正しく宣言されている。
※VSCode上で確認したエラーについて正確に言うと、以下の様な名前空間が見つからないと言ったエラーが発生しました。
The type or namespace name 'UnityEditor' could not be found (are you missing a using directive or an assembly reference?) [Assembly-CSharp]
- 環境について
- OSはWindows10
- Unity2017.4.1 f1で確認
- VSCodeのバージョンは1.22.2
対処方法
ググってみた所、以下のフォーラムに近似する現象と思われるものがありました。
→Visual Studio Problem
その上で結論から言うと、VisualStudioInstallerから取得できる「Visual Studio Build Tools」から「NuGetのターゲットおよびビルドタスク」を取得することで解決できました。
手順
VisualStudioInstallerを開き、「VisualStudioBuildTools」から変更を選択
上の方にあるタブから「個別のコンポーネント」を選択。
後はコードツール欄にある「NuGetのターゲットおよびビルドタスク」を選択してインストール