5

私のコンピューターで完全に動作するプロジェクトがありますが、Team City でビルドしようとすると、ソース ファイルに対して次のビルド エラーが発生します。

using System.Data.Entity;    
using System.Data.Entity.Validation;


CS0234: The type or namespace name 'Validation' does not exist in the namespace 'System.Data.Entity' (are you missing an assembly reference?)

これを機能させるには、Team City を実行しているサーバーに Entity Framework を手動でインストールする必要がありますか?

Nuget Restore をアクティブ化した後に更新します。

これは、何らかの構成の問題である必要があります。

ビルド ログで、ビルド プロセスが .dll をコピーしていることがわかります。

[Copy] Copying file from "D:\TeamCity\agent1\work\541c9f462afc285d\packages\EntityFramework.5.0.0\lib\net45\EntityFr    amework.dll" to "bin\Release\EntityFramework.dll".
[16:51:55][Copy] Copying file from "D:\TeamCity\agent1\work\541c9f462afc285d\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.xml" to "bin\Release\EntityFramework.xml".

しかし、その直後に、さまざまな場所を検討していますが、bin\Release\EntityFramework.dll" フォルダーは含まれていません。

更新 2:

.dll をクラス ライブラリの bin/release フォルダーに手動でコピーするとビルドが成功しましたが、明らかにこれは実行可能な解決策ではないため、これを正しく構成する方法を見つけ続ける必要があります。

更新 3:

残念ながら、これに対する満足のいく解決策は見つかりませんでした。そのため、これを解決できる天才は大歓迎です。:)

4

1 に答える 1

1

エラーが示唆したように、アセンブリがありません。そして@Shriroopが示唆したように、これはEFパッケージにあります。

コンパイル ステップの前に、Nuget インストーラー ステップを追加します。設定する必要があるオプションはいくつかあります。ソリューション名へのパスです。nuget 2.7+ と復元モードを使用することをお勧めします: 復元。

teamcity に最新の nuget バージョンをインストールするには、[管理] > [Nuget 設定] > [NuGet.exe] に移動し、最新バージョンを取得します。

NuGet インストーラーの手順のサンプルを次に示します: http://img.hihi.si/Upload/5PUm.png

于 2014-07-09T14:22:04.843 に答える