System.Resources.MissingManifestResourceException

つい先日まで何事もなかく動作していたプログラムが、ある日突然動かなくなることがあります。もちろんデジタルな世界のことですから、突然動かなくなるには動かなくなるなりの要因があるわけです。ちょうどそんな状況に遭遇しました。

一昨日までグリーンバーが表示されていたUnitTestですが、昨日からレッドバーになってしまいました。

「System.Resources.MissingManifestResourceException: 指定されたカルチャまたはニュートラル カルチャに対して適切なリソースが見つかりませんでした。」

どうやらリソースファイルが原因のようです。詳細な原因がつかめていません…。

現象としては、エラーメッセージの出力内容をテストするメソッドですが、エラーメッセージの内容をリソースファイルに定義して使用してます。同一のリソースファイルで定義されているメッセージでもあるメッセージは正常に取得でき、あるメッセージはSystem.Resources.MissingManifestResourceExceptionがスローされます。

Googleで検索するも該当するものは特にありませんでした。何が原因なのでしょうね。

追記

原因がわかりました。先日プロジェクトの名前空間やアセンブリ名を見直したことによりリファクタリングを行いました。その際に、"System.Resources.ResourceManager"の引数に指定するbaseNameがリファクタリングされていないことが原因でした。

リファクタリング時にテストを行ったのですが、確かにそのとき以来レッドバーが表示されるようになりました。遅い時間だったので明日にでも…と思って対応が途切れてしまったことが原因ですね。