一个构建定义不会生成伪造程序集,另一个构建定义

时间:2014-10-06 07:28:10

标签: tfs msbuild microsoft-fakes

简介

我的计算机上遇到Team Foundation Server Express 2013的问题。我在同一个控制器和代理上有两个构建定义,它们都运行在同一个服务器和相同的环境中。

应该注意的是,我已经看过“类似的问题”而没有任何运气。这显然与相同的根本原因无关,症状也略有不同。

其中一个是门控签入构建定义,它只是在提交到开发分支时编译所有内容。

另一个是预定的构建定义,它在每个星期六凌晨3点运行,构建自上次以来可能已经提交给主分支的任何更改。

gated构建定义基于TfvcTemplate.12.xaml模板有一个进程(对于不运行测试只进行微小的更改,只是编译代码)。

计划的构建定义过程基于某些Azure构建定义模板,该模板可能来自较旧版本的Visual Studio,可能基于某些Azure模板,也可能是TfvcContinuousDeployment.12.xaml模板。

问题

我的门控构建定义运行正常,没有问题。它编译完整的解决方案,只有在编译成功时才会通过。

然后,编译(甚至在它到达运行单元测试的点之前),shceduled构建定义失败了。我看到的错误如下。

Fakes generation build error

显然这是由于缺少假货组件。我尝试了组装并检查它们(我宁愿避免),只是发现这个构建定义运行得很好,但不是之前运行得很好的门控。

我想在构建模板中运行fakes.exe只是在编译之前手动生成它们,但在我的初始测试中(看看这个理论是否会起作用),它甚至不会在命令行中运行,并输出一些我不理解的错误和警告(但可能无论如何都不相关,因为我可能会使用不正确的参数运行fakes.exe。)

更新

更新#1

应该注意的是,我的构建服务器上也安装了Visual Studio 2013 Ultimate。这个(和TFS 2013 Express)都安装了Update 3,服务器已完全更新。

1 个答案:

答案 0 :(得分:1)

我最终放弃了假货,并实施了Moq。工作得更好,并迫使我放弃垫片或痣,这通常被认为是不好的做法。