DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Designer.vb ファイルが再生成されるときに、文字列型Resourcesが自動で割り当てられてしまう

  • 題名: Designer.vb ファイルが再生成されるときに、文字列型Resourcesが自動で割り当てられてしまう
  • 著者: kane123
  • 日時: 2013/06/11 12:06:34
  • ID: 31641
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
環境/言語:[Windows7 VB.net]
分類:[.NET]

いつもお世話になっております。

[VisualStudio2008 Express]
[VB.net WindowsFormアプリケーション]

非常に複雑な現象ですが、順を追って説明しようと思います。

1.プロジェクト内に長文を保存する必用があるため、
Resouces.Designer.vb 及び Resouces.resx に長文の文字列を登録
した。 (もちろん、Resources.resxをソリューションエクスプローラ
でダブルクリックして、GUI操作で登録を行った。この長文の名前を 
strChobun  とします。)

2.ソリューション内の他のFormのデザイナを開き、修正を加え、
  Designer.vb ファイルが再生成された瞬間以降、Designer.vb 内の
  全ての ""  の箇所が  [プロジェクト名].My.Resources.Resources.strChobun
  に書き換わり、勝手に長文が適用されてしまった。

  ※Designer.vb 内の ""  の箇所とは、例えば Combobox.Items.Addrange(new string(){"","aaa","bbb"}
    などのことです。


3.厳密に言うと、ソリューション内に @クラスライブラリ AWindowsFormアプリケーション
  という二段構成になっており、strChobunの登録は @ にて、デザインの不具合はAにて
  という状態になっています。 この現象を無くすため、

   1.@のクラスライブラリから strChobun    を完全に消去
   2.@をビルド
   3.Aでデザイナ上で変更を加える という方法を取ったところ、 

  [クラスライブラリ名].My.Resources.Resources.strChobun というのが
   出てくる現象が相変わらず発生しつづけ、デザイナで変更を加えるたびに、
  [クラスライブラリ名].My.Resources.Resources.strChobun を ""  に置換するという
   作業を余儀なくされる。 (永遠にモグラ叩き状態 )

【疑問】
  一度抹消したプロパティが何度も出てくるというのが不可解ですし、
  クラスライブラリ内の文字列Resourseのアクセス修飾子はFriendなのに、それを参照先のプロジェクトが
   強引に見に行こうとする動きも理解できません。 

【回避法】対処療法ですが、

   1.クラスライブラリ内に strChobun を復活させ、アクセス修飾子をPublicに変更 
   2.strChobun の値を  "" にし、Designer.vbの "" が strChobunに
     置き換わっても、問題が起こらないように変更。 で、しのいでおります。

何か根本的な解決法がありそうなら、ご教授願いたいです。

※今後、現象を分かって頂くためにソリューションを.zipにしてアップロード
させて頂くかもしれません。(再現性のあるシンプルなものを作るのに時間を
要しています。)

DOBON.NET | プログラミング道 | プログラミング掲示板