チーム開発のスタートアップでつまづいた
チームメンバーにGitのリモートからソリューション一式を落としてもらったが、ソリューションを開くと大量のエラーが…
今後の為メモ程度に記述しています。
エラー一覧をみるとパッケージの参照エラーが発生していた。
log4netの参照先がありません
🌾イメージのエラー
初めは、各自必要なパッケージを入れないといけないのではないかと思ってしまったが、NuGet管理していればパッケージでまとまっているはずなのだが、参照先を確認してみると…
参照名 | 参照先 |
---|---|
lig4ner | ../bin/lig4net... |
なぜかbinが参照先に…
git管理する上で自動生成されるファイル bin obj は管理対象から外しているため、ソリューションをCloneして来てももちろん参照ができない。
この状態でビルドしようとすると失敗するのでbinも作られるわけがない…
というかdllがいないので一生失敗し続ける。
なぜこのような形になっていたのかはわからないが、ソリューション内に含まれるプロジェクトは別の開発で使っていたプロジェクトを採用していた為、元々そういうふうに参照していたとしか言えない…
binとかobjに参照設定して管理するのはやめようというお話…
基本中の基本なのかもしれないが、そもそもそんなの意識しながらやってない…
自分の場合は、プロジェクトのコピーをもらった状態で始めたためbin・objどちらももいる状態から始めていた為、このようなエラーが出ることはなかった…
そのため、新たに開発を始めるメンバーで初めて気づくことができた。
ただし、プロジェクト間で参照をしている場合はbinの参照先で問題ない。
なぜなら、ビルド順さえしっかりしていれば参照しているプロジェクトをビルドする際にはすでにbinの参照先が出来上がっているからだ。
これはgitが悪いわけではない。
管理対象外となっているフォルダ内にdllが格納されているのが問題なのである。
こんなことはありあえないと思うが、参照設定している・パッケージを入れている場合は一度参照先を確認しおこう…