次の状況を考慮してください。
- 私の Windows フォーム アプリケーションには、フォームがあります。
- そのフォームには .resx ファイルがあります。
- フォームは、別のアセンブリ ("Other.dll") のクラス ("OtherClass") を使用します。
- 「Other.dll」は、メイン アプリケーションと同じ VisualStudio 2010 ソリューションに組み込まれています (同じソリューション内の別のプロジェクトにすぎません)。
- メイン プロジェクト (Windows フォーム アプリケーション) で、「Other.dll」プロジェクトへの参照を適切に追加しました。
すべてがうまく機能します(予想どおり)。
次に、"Other.dll" に含まれる型の名前空間を "Old.Namespace" から "New.Namespace" に変更する必要があります。
- VS2010 で、"Other.dll" プロジェクトの [プロパティ] ウィンドウを表示します。
- 「デフォルトの名前空間」テキスト ボックスの名前空間を「Old.Namespace」から「New.Namespace」に変更します。
- それに応じて、関連する .cs ファイルの名前空間を変更します
- 変更した「Other.dll」プロジェクトを再構築します。エラーなし。修正した「Other.dll」が正常に作成されました。
問題は次のとおりです。
この後、ソリューション全体を再構築すると、コンパイラが停止し、フォームの .resx ファイルが無効であると報告されます。
「無効な Resx ファイルです。.RESX ファイルで使用されている型Old.Namespace.OtherType、その他、バージョン 1.0.0.0、Culture=neutral、PublicKeyToken=null を読み込めませんでした。必要な参照がプロジェクトに追加されていることを確認してください。行 1521、位置 5"
明らかに、.resx ファイルはまだどこかから古い名前空間を持つ型を参照しています。その「どこか」は、.resx ファイルのバイナリ セクション内にあるようです。
質問: .resx が新しい型 (変更された名前空間を持つ) を参照する必要があることを理解させるにはどうすればよいですか?
助けてください、私は本当にここで進む方法がわかりません...