C++/CLIアプリを作成して、ローカライズ(L10N or I18N) します。このとき、もし自分で名前空間を変えているなら、実行時に「System.Resources.MissingManifestResourceException」例外が発生します。
詳細
どうもアセンブリリソースを埋め込む際に、ルート名前空間を見て名前を修飾して埋めているらしく、ローカライズしたフォーム(ApplyResourceを呼びだしている)クラスの名前空間がルート名前空間とずれていると、実行時に適切なリソースを見つけられなくて、「System.Resources.MissingManifestResourceException」例外が発生するようです。
対処方法は2つ。(ま、結局2つともに同じことなんですけど)
- フォームクラスの名前空間を、ルート名前空間に合わせる。
- ルート名前空間を、フォームクラスの名前空間に合わせる。
ルート名前空間は、プロジェクトのプロパティウィンドウ(プロパティページでもプロパティマネージャでもないですよ!)の、ルート名前空間で変更するか、プロジェクトをいったんソリューションエクスプローラからアンロードして、右クリックで編集するなどします。
あぁ、つらい。