最近は Visual Studio Code でも C# が動くんですね!
Visual Studio なんていらんかったんや!
ということで、公式チュートリアルの通りにやってみたところ……。
問題発生
本来ならアプリのビルドとデバッグに必要なアセットの追加を求められるべきところで、なにやら怪しげな警告が。
恐る恐る内容を開いてみると……。
[info]: OmniSharp.Stdio.Host Starting OmniSharp on Windows 6.2.9200.0 (x64) [info]: OmniSharp.Services.DotNetCliService DotNetPath set to dotnet [info]: OmniSharp.MSBuild.Discovery.MSBuildLocator Located 2 MSBuild instance(s) 1: Visual Studio Community 2017 15.8.28010.2048 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin" 2: StandAlone 15.0 - "C:\Users\Gigacee\.vscode\extensions\ms-vscode.csharp-1.17.1\.omnisharp\1.32.8\msbuild\15.0\Bin" [info]: OmniSharp.MSBuild.Discovery.MSBuildLocator Registered MSBuild instance: Visual Studio Community 2017 15.8.28010.2048 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin" // 中略 [fail]: OmniSharp.MSBuild.ProjectManager Attemped to update project that is not loaded: c:\Users\Gigacee\Sandbox\dotnet\Hello World.csproj
どうやら、 Visual Studio Code の C# 拡張ではなく、 Visual Studio Community 2017 の MSBuild を呼んでしまってエラーが起こっているようです。
Visual Studio をアンインストールしてしまえば解決しそうですが、 Unity でゲーム開発をするときとかにまだ使うんですよね……。
(さっき「いらんかったんや!」と言ったばかりですが……)
解決
なんとか Visual Studio を生かしたまま解決できないかと色々試した結果、 Visual Studio 自体に .NET Core をインストールすることでうまくいきました。
Visual Studio Installer を起動し、「変更」から、「.NET Core クロスプラットフォームの開発」をインストールすれば OK !
なんで自分自身の MSBuild より外部の MSBuild の方が優先されるんですかね……謎です。
なお OmniSharp の GitHub では
問題自体は認識されているようです。
早く直ると良いですね。