在Server 2012上构建.NET 4.0网站时出现CS0246和CS0433错误

时间:2013-03-11 15:09:30

标签: .net teamcity-7.0 psake

我正在安装.Net 4.5的Server 2012上构建.Net 4.0 Web项目。我正在TeamCity下使用Psake,并且得到CS0246,说无法找到NotMapped,CS0433说它已经找到了两个用于DataAnnotations的DLL。

该课程如下:

using System.ComponentModel.DataAnnotations.Schema;
public abstract class Order
{
   [NotMapped]
   public decimal TaxPercentage { get; set; }
}

完整错误包括:

Ordering\Order.cs(105,8): error CS0246: The type or namespace name 'NotMapped' could not be found (are you missing a using directive or an assembly reference?) [C:\TeamCity\buildAgent\work\71c853cb9b4c108\Code\Models\Model.csproj]
Ordering\Order.cs(105,8): error CS0433: The type 'System.ComponentModel.DataAnnotations.Schema.NotMappedAttribute' exists in both 'c:\TeamCity\buildAgent\work\71c853cb9b4c108\Code\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll' and 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.ComponentModel.DataAnnotations\v4.0_4.0.0.0__31bf3856ad364e35\System.ComponentModel.DataAnnotations.dll' [C:\TeamCity\buildAgent\work\71c853cb9b4c108\Code\Models\Model.csproj]

使用Psake而不是TeamCity,Windows 8下的构建工作正常。有任何想法如何解决这个问题?

更新:我做了一个较小的测试project,这在2012年建立得很好。看起来我的主要项目有些奇怪。

1 个答案:

答案 0 :(得分:2)

在EF 4.4中提供System.ComponentModel.DataAnnotations,而它们在EF 5.0的单独程序集中。我在我的项目中混合了EF参考资料,我现在已经重建了 - 所有这些都使用了EF 5,它解决了这个问题。