Unity 2018 でプロジェクト作成時にArgumentExceptionが出た

Unity 2018.2.17f1にてプロジェクトを作成時に ArgumentException が発生しました。
Visual Studio も最新のものが入っているし何故? と思い色々いじっていたら
解決したので解決方法を見つけたのでメモしておきます。
結論だけ先に書くと
使用するエディターがVisual Studio 2017になっていなかった
のが原因でした。

目次

 

エラーメッセージ

以下にエラーメッセージの内容を貼ります。(見やすいように改行しています。)
ArgumentException: Value does not fall within the expected range.

SyntaxTree.VisualStudio.Unity.Bridge.CompilationUnit.LanguageOf (SyntaxTree.VisualStudio.Unity.Bridge.CompilationUnit unit)

SyntaxTree.VisualStudio.Unity.Bridge.CompilationUnit.CompilationUnits ()

SyntaxTree.VisualStudio.Unity.Bridge.ProjectSystem.UnitySolutionBuilder..ctor ()

SyntaxTree.VisualStudio.Unity.Bridge.ProjectSystem.UnitySolutionBuilder.CreateSolutionFromAssetDatabase ()

SyntaxTree.VisualStudio.Unity.Bridge.ProjectFilesGenerator.GenerateProject ()

SyntaxTree.VisualStudio.Unity.Bridge.ProjectFilePostprocessor.OnPreGeneratingCSProjectFiles ()

System.Reflection.MonoMethod.Invoke
(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object parameters, System.Globalization.CultureInfo culture)
(at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)

Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.

System.Reflection.MonoMethod.Invoke
(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object parameters, System.Globalization.CultureInfo culture)
(at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)

System.Reflection.MethodBase.Invoke
(System.Object obj, System.Object[] parameters)
(at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)

UnityEditor.AssetPostprocessingInternal.OnPreGeneratingCSProjectFiles () (at C:/buildslave/unity/build/Editor/Mono/AssetPostprocessor.cs:204)

UnityEditor.VisualStudioIntegration.SolutionSynchronizer.Sync () (at C:/buildslave/unity/build/Editor/Mono/VisualStudioIntegration/SolutionSynchronizer.cs:207)

UnityEditor.SyncVS.SyncVisualStudioProjectIfItAlreadyExists () (at C:/buildslave/unity/build/Editor/Mono/SyncProject.cs:163)

f:id:usiromuki:20181214132327p:plain

実行自体は普通に出来たのですが
スクリプトを作成し開くとVisual studio 2015で開かれ
「次のファイルがコマンドラインで指定されました:
D:UnityProjects\test\test.sln
ファイルが見つからないため読み込まれません。」
という警告がでました。
Visual studio 2017は入っているのにいったい何故....

f:id:usiromuki:20181214132415p:plain




解決策


使用するエディターの設定を変更する事でエラーは発生しなくなりました。
メニューバーのEdit->PreferencesからUnity Preferencesを開き
External Tools の External Script EditorからVisual Studio 2017を選択。
これでエディターが変更されました。

f:id:usiromuki:20181214132530p:plain

f:id:usiromuki:20181214132550p:plain