.Net Framework2.0で動作するWindowsFormプログラムで、Mutex.WaitOne(int)メソッドを利用したプログラムを動作させたのですが、特定の環境だけメソッドが見つからないという例外が発生しました。いろいろと疑問がわいたので質問させてください。
また、例外が発生した環境、問題なく動作した環境も以下に挙げさせていただきます。
■質問
同じ.Net Framework2.0でも、バージョンUP(リビジョン番号の違い)でFramework側のクラスにpublicメソッドが追加されることはよくあることなのでしょうか?
また、この問題をコンパイル時に検出することはできないのでしょうか?
(ドキュメント上にはframework2.0にはMutex.WaitOne(int)は存在しないのようです。ドキュメントを確認するしかないのでしょうか
http://msdn.microsoft.com/ja-jp/library/system.threading.waithandle.waitone(v=vs.80).aspx)
■プログラムのコンパイル
プログラムのコンパイルは、下記例外が発生しない環境にてVisual Studio 2005で行いました。
コンパイル時に参照しているFrameworkにて提供されているのアセンブリのバージョンは全て2.0.0.0です。
コンパイルエラー等は特に発生せず、上記Mutex.WaitOneはインテリセンスでも表示されます。
■例外が発生しなかった環境(PGをコンパイルした環境)
OS:Windows XP SP3
.Net Framework: 1.1, 2.0SP2, 3.0SP2, 3.5SP1, 4.0
mscorlib.dllのバージョン: 2.0.50727.3643
■例外が発生した環境
OS:Windows XP SP3
.Net Framework: 2.0
mscorlib.dllのバージョン: 2.0.50727.42