HoloLensアプリを作ってて、別のPCにUnityプロジェクト一式持ってきてビルドしたらエラーになって困った話。Unityのバージョンも同じなのに・・・なぜ?と思っていたら、Windows SDKのバージョンが違ってた件。
現象
PC-Aではうまくビルドできるけど、同じソースがPC-Bではビルドエラーになる。
Unityのバージョンは同じ。(Unity 2017.2.0f3)
エラー内容
error CS1929: 'SpatialInteractionController' does not contain a definition for 'TryGetRenderableModelAsync' and the best extension method overload 'InteractionSourceExtensions.TryGetRenderableModelAsync(InteractionSource)' requires a receiver of type 'InteractionSource'
何かが足りてないよね、というのはすぐに想像ついた。
原因
Unityのバージョンは同じ(2017.2.0f3)だったけど、SDKのバージョンが違ってた。
どっちのPCも「Latest installed」って表示されてたので、なかなか気づけなかった。。。
プルダウンあけてみると、候補に出てくるバージョンが違ってた。
解決策
Windows SDKをどうやって上げようかと思ってたら、Visual Studioのバージョンが違うことに気づいた。
- PC-A(ビルド通る方):Visual Studio Commnunity 2017 Version 15.5.4
- PC-B(エラーの方) :Visual Studio Commnunity 2017 Version 15.1
→ 最新版(15.5.6)にアップデートしたら、SDKのバージョンも揃った。ビルドも通った。