以下に示すように、メソッド シグネチャが値型から null 許容値型に変更されてオーバーロードされた多くのメソッドを含むライブラリがあります。
A.)IsEmpty(int obj, int defaultValue)
B.)IsEmpty(int? obj, int defaultValue)
ご覧のとおり、唯一の違いは B が nullable であることです。私のオフィスのほとんどのワークステーションでは、このオーバーロードがコンパイルされ、型が真に異なるものとして認識されます。
しかし、何らかの理由で、すべてのマシンと VM がコンパイルされません。なぜこれが起こっているのか、私たちは現在困惑しています。私が使用しているマシンは、動作中/コンパイル中の他のマシンのミラー イメージに近い必要があります。
コンパイル中に発生するエラーの例を次に示します。
エラー 28 次のメソッドまたはプロパティの呼び出しがあいまいです: 'BayTech.Common.Fix.IfEmpty(System.Guid, System.Guid)' と 'BayTech.Common.Fix.IfEmpty(System.Guid, System.Guid?) ' C:\Projects\Applications\JukeWeb\BayTech\Internal\Common Library\VS2010\Apps\BayTech.Common\Conversion\Fix.Empty.SL.cs 55 17 BayTech.Common
エラー 11 次のメソッドまたはプロパティの呼び出しがあいまいです: 'BayTech.Common.Fix.IfEmpty(System.DateTime, System.DateTime)' と 'BayTech.Common.Fix.IfEmpty(System.DateTime, System.DateTime?) ' C:\Projects\Applications\JukeWeb\BayTech\Internal\Common Library\VS2010\Apps\BayTech.Common\Conversion\Fix.Empty.SL.cs 35 17 BayTech.Common
エラー 165 次のメソッドまたはプロパティの呼び出しがあいまいです: 'BayTech.Common.Fix.IfEmpty(string, System.Guid)' と 'BayTech.Common.Fix.IfEmpty(string, System.Guid?)' C:\ Projects\Applications\JukeWeb\BayTech\Internal\Common Library\VS2010\Apps\BayTech.Common\Conversion\Fix.IfEmpty.Xml.cs 259 17 BayTech.Common
なぜこれが起こるのか誰にも分かりますか?
環境設定に関する情報を次に示します。
- VS2010
- Idealblade (最新のインストール)
- Just-In-Code を含むインストールされた Telerik コントロール
- VS および Windows 7 に含まれるすべてのサービス パック
- VS および Windows 7 に含まれるすべてのサービス パック
- Win7 アルティメット
- SQL 2008 R2
- T4 テンプレート、PostSharp、
- Codesmith Professional インストール済み
- VisualSVNがインストールされています
- DevExpress
- SQLComplete がインストールされている