C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 勝手に「○は×のメンバーではありません」エラー大量発生


(過去ログ 173 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■99715 / inTopicNo.1)  勝手に「○は×のメンバーではありません」エラー大量発生
  
□投稿者/ みょんみょん (1回)-(2022/05/17(Tue) 15:37:26)

分類:[VB.NET/VB2005 以降] 

元々VS2013で作成したWinFormアプリを、現在VS2019で改修を行っています。
(言語はVB)

最近、何かのタイミング(ビルドした時?)で、勝手に
「○○は××のメンバーではありません」
というエラーがたくさん出て、ソースが赤い下線だらけになることがあります。
参照設定済みの一般的なFrameworkのクラスに対してもこのエラーが出ているので、
何かマズいことをやってしまったのかと、最初パニックになりましたが、
VSを再起動するとエラーは出なくなります。

ただ、こういうことがよく起きてしまうのは困りものです。
この問題を解消する方法はないでしょうか?
引用返信 編集キー/
■99716 / inTopicNo.2)  Re[1]: 勝手に「○は×のメンバーではありません」エラー大量発生
□投稿者/ WebSurfer (2482回)-(2022/05/17(Tue) 16:00:21)
No99715 (みょんみょん さん) に返信

> VSを再起動するとエラーは出なくなります。
>
> ただ、こういうことがよく起きてしまうのは困りものです。
> この問題を解消する方法はないでしょうか?

再起動すれば解決するのは分かっているが、そんなことをしなくても最初にプロジェクトを
開いた時に問題が出ないようにしたいということですか?

だとするとそのような方法はないのではと思いますけど。開かなければ問題が起こるのかど
うかは分からないのでしょうから。
引用返信 編集キー/
■99717 / inTopicNo.3)  Re[1]: 勝手に「○は×のメンバーではありません」エラー大量発生
□投稿者/ 魔界の仮面弁士 (3364回)-(2022/05/17(Tue) 16:29:47)
No99715 (みょんみょん さん) に返信
> 「○○は××のメンバーではありません」

正直、実際のソースを見てみないと分からないですね。

再起動すればエラーは出なくなるということは、元のビルド済みのアセンブリでは動くけれど、
ソースからリコンパイルすると違うアセンブリとして解釈されてしまい、そのアセンブリを
参照しているプロジェクトが動作しなくなってしまう…という状況もありそう。


Debug/Release それぞれでクリーンした上で、プロジェクト単位でリビルドしないと、
『メンバーではありません』になってしまうという環境は見たことがある気もしますが、
かなり昔のことなので、仔細はうろ覚え。

この時は、他のプロジェクトを使いまわしていた時に、フォルダーの配置階層が
標準と異なっていて、ビルドの依存関係が正しく設定されていない事が要因でした。



あとは ASP.NET で、.NET 4.5 世代の DLL をプロジェクト参照した状態で
Web サイト側の .NET Framework バージョンを 4.6.2 以降に変更した時に生じたケース。

4.6.2 から、System.Web.Globalization 名前空間が追加されているため、
Visual Basic から、System.Globalization 名前空間に所属する型
(例えば CultureInfo や DateTimeStyle)を扱う際に、
System.Globalization.CultureInfo ではなく、中途半端に
Globalization.CultureInfo などと記述していると、このコード
System.Web.Globalization と System.Globalization の間で
曖昧さが生じてしまう事が原因でした。

VB のプロジェクトは、System や System.Web.Globalization を既定でインポート
しているのですが、System.Globalization 名前空間はインポートされていないんですよね。

この時は、プロジェクトのプロパティで System.Web.Globalization のインポートを解除するか、
またはソース側で、曖昧にならないような指定をすることで回避しました。
引用返信 編集キー/
■99744 / inTopicNo.4)  Re[2]: 勝手に「○は×のメンバーではありません」エラー大量発生
□投稿者/ みょんみょん (2回)-(2022/05/20(Fri) 17:00:46)
No99717 (魔界の仮面弁士 さん) に返信

ありがとうございます。
結局、投稿した次の日から、この問題が一切出て来なくなりました。
摩訶不思議です。

今回の件は魔界の仮面弁士 さんが挙げた例のASP.NETではなく、WinFormなのですが、
元々 .NET Framework バージョンが4.5だったものを4.6.2 以降に変更したという点が同じなので、
何かあるのかな、とも思いましたが、それならば突然赤下線のようなことにはならないでしょうし...

とりあえずもうしばらく様子を見ようと思います。
引用返信 編集キー/
■99750 / inTopicNo.5)  Re[3]: 勝手に「○は×のメンバーではありません」エラー大量発生
□投稿者/ ビール呑み (5回)-(2022/05/21(Sat) 11:29:49)
この現象、私もしょっちゅう遭遇しましたが、最近見てません。

私の場合、.NetMVCのプロジェクトで頻発し、その後WinFormでも発生して絶望したのですが
WinFormのときはダブルコーテーションの付与ミスが原因でした。

例えばコード中に

keyword = ""

とあるところを

keyword = """

にしてしまったりすると、コードが真っ赤になって肝を冷やすことになります。

ただ、.NetMVCのときはImportsディレクティブ部分あたりまでも含めて全体が赤くなったと記憶しているので
別の原因だったのではないかと思います。
(魔界の仮面弁士さんご指摘の「System.Web.Globalization」あたりが怪しいかな)

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -