Closed9
Unityから出力したHoloLens2向けアプリのVisualStudioソリューションのビルドが急に通らなくなった
Unityを使って開発していたHoloLens2用アプリが、あるタイミングから急にビルド・デプロイ不能な状態になってしまった・・・
Unityー>VisualStudioは通るんだけど、VisualStudioー>HoloLens2がどうやっても通らない。
エラー内容は、Unityが自動生成したソースコードとかコンパイラ側にある標準ライブラリのソースとのリンカーエラーが多数。
自分のコードの構文エラーでないことはほぼ間違いない (というかそこまで複雑なことは何らしていない) と思うんですが、どういうことだろう・・・
作業の流れは以下の通り。
- Unity側でアプリケーションを作る
- HoloLens2にアプリケーションをビルド・デプロイするためのVisualStudioソリューションをUnityから生成する
- 生成したVisualStudioソリューションを開いてHoloLens2向けにビルド・デプロイする
発生しているケースは以下の通り。
- Unityプロジェクト編集・VisualStudioソリューション生成を何度か繰り返していると、特定のタイミングでビルドが通らなくなる
- 書き出し済みのVisualStudioソリューションから何度か直接デプロイ・リビルドしてデプロイしようとすると何らかのタイミングでビルドが通らなくなる
検証環境は以下の通り。
- 開発環境
- Windows PC (Intel Core i7-12700F, 48[GB] RAM, NVIDIA GeForce RTX 3080Ti)
- OSバージョン
- Microsoft Windows 10 Pro 22H2
- Unityバージョン
- Unity 2021.3.2f1
- VisualStudio バージョン
- Microsoft Visual Studio Community 2022
プロジェクトの内容などは以下の通り。
- 概要
- 空間メッシュの任意の場所に単純な3Dオブジェクトを配置できるシンプルなARアプリ
- 使用ライブラリ等
- Microsoft Mixed Reality Toolkit v2.8.3.0
- Microsoft.MixedReality.QR
試したことは以下の通り。
- VisualStudioソリューションを削除して改めて生成してビルド => 失敗
- Unity プロジェクトで全アセットを再インポートしてVisualStudioソリューションを生成しビルド=>失敗
- VisualStudioを最新バージョンに更新してビルド=>失敗
- Unityプロジェクトを新規に作成して既存プロジェクトからデータを移動・実装をやり直してビルド=>成功
今のところ、プロジェクトを新しく作り直して全部やり直すしか方法がない・・・
VisualStudio から出力されたエラーログは以下の通り。
.NET Standard 2.0 向けに構築されたパッケージがプロジェクトに紛れているのが原因だったっぽい・・・?
当該パッケージを除去したらビルド・デプロイまで通るようになった・・・・
結論
開発環境の C# フレームワークが「.NET Standard 2.1」だったのに対し、使用してたプラグインの DLL が「.NET Standard 2.0」向けにビルドされていたことで、バージョン違いによる問題が生じていた。
対応
- 同じフレームワークバージョンのプラグインに差し替える
- プラグインのDLLを開発環境と同じフレームワークバージョン向けにビルドし直す (コードがあれば)
このスクラップは2023/09/27にクローズされました