リンク先クローズしたので記載内容転記
Visual Studio 2015 Community版をインストールし、Visual C++のモジュール追加後、いきなり下記のエラーが出て、プロジェクトを作成できない。最悪だ。仕方なく「ActivityLog.xml」を見ると、下記の出力内容
LegacySitePackage failed for package [Visual C++ Project System Package]Source: 'Microsoft.VisualStudio.ProjectSystem.Utilities.v14.0' Description: MSBuild に "VCTargetsPath" プロパティの値が含まれていません。Microsoft.VisualStudio.ProjectSystem.ProjectException: MSBuild に "VCTargetsPath" プロパティの値が含まれていません。 場所Microsoft.VisualStudio.ProjectSystem.Utilities.ProjectErrorUtilities.ThrowProjectExceptionHelper(Exception innerException, String unformattedMessage, Object[] args) 場所Microsoft.VisualStudio.ProjectSystem.Utilities.ProjectErrorUtilities.ThrowProjectException(String message) 場所Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCPlatformExtensionService.<GetInstalledPlatformsAsync>d__13.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 場所System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim.<ReadInstalledPlatformsAsync>d__242.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 場所System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim.<>c__DisplayClass55_0.<<Initialize>b__0>d.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 場所System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.ApartmentMarshaler.<>c__DisplayClass7_0.<<Invoke>b__0>d.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所 Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread() 場所Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim.Initialize(IntPtr instResources, Object sp, Object browser, IVCBuildPackageInternal bldPkg)ネットで検索したら、下記の投稿が手掛かりになりそうなので、参考に自分で試行錯誤してみた。どうやら「VCTargetsPath」の設定場所は、レジストリですなぁ。手掛かりからすると、下記の2箇所が該当すると推測できる。
Windows Registry Editor Version 5.00"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))""VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))""VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))""VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))""VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"64bit側の設定なのに「MSBuildExtensionsPath32」が混じっているのが気になるが、インストールしたVisual Studioには64bitのバイナリ等は含まれてなかったので無視。うん、うまく行った!原因とかはどうでもいいや、これでVisual C++を使えるようになって良かった。