2014-10-07 90 views
0

我有一个使用不同版本的.NET的项目的构建定义。一些使用4.0和其他使用4.5TFS构建程序集版本冲突

  • 4.0的项目使用EntityFramework 4.4。
  • 使用4.5的项目EntityFramework 5.0。

这是给我很多头疼的,因为当编译去OK,测试不会在构建服务器通过因为组装的EntityFramework是不正确的。

似乎每个项目都会用输出文件夹中所需的项目覆盖现有的程序集,所以运行正确的程序运行测试是件幸运的事情。

我该如何避免这个问题?我可以强制输出文件夹保留最新版本的EF并放入装配体?

谢谢。

编辑:我检查基于答案生成定义和发现这一点:

编辑2:快照对应于从TFS的早期版本迁移的模板,所以它不看像默认的那样。无论如何,我突出显示的选项适用于我:)我将问题标记为已回答。

Build Definition

+0

您正在使用哪个版本的TFS? – 2014-10-07 10:17:03

+0

TFS版本2013. – SuperJMN 2014-10-07 10:28:12

回答

2

你基本上有3个选择,这取决于你如何构建应用时会是什么。

选项1 设置输出位置是PerProjectAsConfigured,这将使得每个应用程序被丢弃到它自己的文件夹,然后将测试应与目标EF框架独立运行。 如果您将按每个项目部署单独的应用程序,这很好。 Build Definition Set Output Location

选项2 保留所有设置的是,改变你的构建顺序,以便EF的最新版本得到最后建成,因此在下拉文件夹中保留的最新版本,可以再加入重定向的要求

选项3 标准化EF版本并更新所有项目以指向单个版本。

+0

我已将图像附加到我在Visual Studio 2013中设置的屏幕上。我认为它是不同的。你可以,检查一下吗?谢谢。 – SuperJMN 2014-10-07 13:54:30

+0

嗯,不2013模板?你有没有从以前的版本带来模板? TFS2010? – 2014-10-07 14:16:48

+0

哦,我很害怕他们迁移以前版本的模板:(这可能是问题! – SuperJMN 2014-10-07 14:51:46