Visual Studio 2010 のフォーム デザイナー上での操作により不適切なコードが生成される

現象
Visual Studio 2010 の Windows フォーム デザイナー上で配置済みのコントロールの移動等を行なった場合、その後のビルドでエラーが発生することがあります。
この現象は、フォームのプロパティが以下の設定になっている場合にのみ発生する可能性があります。 

  Localizable : True
  Language : 日本語
原因
コントロールの移動等に伴って Visual Studio が Form*.Designer.cs(.vb) 内に自動生成するソース コードに問題があります。
たとえば、以下のようなコードが自動挿入され、それが原因でビルドエラーになります。 

  this.button1.ImageKey = global::S.App.Resources.Resource_vi.UnitMonths;

本来リソース ファイルに追加されるべきコードが、誤って Form*.Designer.cs(.vb) に追加されてしまうことによって、ビルド エラーが発生します。

解決方法
以下のいずれかの方法によって、現象の発生を抑止することが可能です。
 
(1) ローカライズ対象のコントロールの ImageKey プロパティを明示的に [なし] に設定する

コントロールの ImageKey プロパティが既定で [なし] に設定されている場合であっても、ドロップダウン リストから明示的に [なし] を選択することによって、内部処理が行なわれるため、本件現象が発生しなくなります。

(2) フォームの Localizable プロパティをいったん False にしてから True に戻す
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2845570 - 最終更新日: 09/29/2016 14:55:00 - リビジョン: 3.0

Microsoft Visual Studio 2010 Professional, Microsoft Visual Studio 2010 Premium with MSDN, Microsoft Visual Studio 2010 Ultimate, Microsoft Visual Studio 2010 Service Pack 1

  • KB2845570
フィードバック