我们有一个库,其中包含许多重载的方法,方法签名从值类型更改为可空值类型,如下所示:
一个。)IsEmpty(int obj, int defaultValue)
乙)IsEmpty(int? obj, int defaultValue)
如您所见,唯一的区别是 B 可以为空。在我办公室的大多数工作站上,这种重载编译和类型被认为是真正不同的。
但是,由于某种原因,我所有的机器和虚拟机都无法编译。我们目前对为什么会发生这种情况感到困惑。我使用的机器应该接近其他正在工作/编译的机器的镜像。
以下是编译期间出现的错误示例:
错误 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(最新安装)
- 已安装 Telerik 控件,包括 Just-In-Code
- 包含 VS 和 Windows 7 的所有服务包
- 包含 VS 和 Windows 7 的所有服务包
- Win7 终极版
- SQL 2008 R2
- 用于 T4 模板的 VSExtensions、PostSharp、
- Codesmith Professional 已安装
- 安装了 VisualSVN
- 开发快递
- 已安装 SQLComplete