我有一个在我的计算机上完美工作的项目,但是当试图在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的服务器上手动安装实体框架才能正常工作?
激活Nuget Restore后更新:
这一定是配置问题。
我可以在构建日志中看到构建过程正在复制.dll:
[Copy] Copying file from "D:TeamCityagent1work541c9f462afc285dpackagesEntityFramework.5.0.0libnet45EntityFr amework.dll" to "binReleaseEntityFramework.dll".
[16:51:55][Copy] Copying file from "D:TeamCityagent1work541c9f462afc285dpackagesEntityFramework.5.0.0libnet45EntityFramework.xml" to "binReleaseEntityFramework.xml".
但不久之后,它正在考虑一堆不同的位置,但不包括binReleaseEntityFramework.dll"文件夹。
更新2:
手动复制。dll到我的类库的bin/release文件夹有助于构建通过,但显然这不是可行的解决方案,所以需要继续寻找如何正确配置它。
更新3:我很遗憾地说,从来没有找到一个令人满意的解决方案,所以任何能解决这个问题的天才都非常受欢迎。:)
错误提示您缺少程序集。正如@Shriroop建议的那样,这是在EF包中。
在编译步骤之前,添加Nuget Installer步骤。有几个选项你应该设置,路径到解决方案名称,我建议你使用nuget 2.7+和恢复模式:Restore.
要在teamcity中安装最新的nuget版本,请进入管理> nuget设置> nuget .exe获取最新版本。
下面是NuGet安装步骤的示例:http://img.hihi.si/Upload/5PUm.png