2

.Net 4.5 がインストールされた Server 2012 で .Net 4.0 Web プロジェクトを構築しています。TeamCity で Psake を使用していますが、NotMapped が見つからないという CS0246 と、DataAnnotations の 2 つの DLL が見つかったという CS0433 が表示されます。

クラスは次のようになります。

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]

ビルドは、TeamCity ではなく Psake のみを使用して、Windows 8 で正常に動作します。これを解決する方法はありますか?

更新: 私はより小さなテストプロジェクトを作成しましたが、これは 2012 年に正常にビルドされます。私のメイン プロジェクトに奇妙な点があるようです。

4

1 に答える 1

2

EF System.ComponentModel.DataAnnotations4.4 で出荷されていることがわかりましたが、EF 5.0 では別のアセンブリになっています。プロジェクトに EF 参照が混在していましたが、これを再構築しました。すべて EF 5 を使用し、問題を修正しました。

于 2013-03-13T17:58:13.577 に答える