关于tfs:为什么即使启用了CI,我的2008 Team Build为什么也不会在开发人员签入时触发

关于tfs:为什么即使启用了CI,我的2008 Team Build为什么也不会在开发人员签入时触发

Why won't my 2008 Team Build trigger on developer check-ins despite CI being enabled

我有一个Team Foundation Server 2008安装程序以及一台带有Team Build服务的单独计算机。

我可以创建团队构建,并在Visual Studio中或通过命令行(成功完成的地方)手动触发它们。但是,尽管在构建定义上打钩了每个构建选项,但对源树的签入不会导致构建触发。更新:显然,我具有启用CI选项的完整工作版本定义。

使用源代码树的配置非常简单,可以在Main文件夹下或Branch \\\\ branchName文件夹下使用代码。每个代码分支(包括主代码)都有一个与其中包含的解决方案文件有关的标准"团队构建"定义。与默认设置相比,唯??一的变化是构建服务器的工作文件夹。即对于main,由于路径长度,这是Server:" $ \\\\ main" Local:" c:\\\\ build \\\\ main"。

我唯一能猜到的(可能是红色鲱鱼)是开发人员工作区可能有些奇怪。当前,每个开发人员都将Server:" $ "映射到local:" c:\\\\ tfs ",以便所有分支只有一个工作区。这主要是为了避免重新映射某些开发人员以前遇到的问题。但是我看不到这将如何影响CI。

更新:间接地找到答案;请阅读下面的


好吧,我在几个死胡同之后找到了答案。最后,我无意中修复了此问题,同时又修复了另一个问题。基本上,我们刚刚为构建打开了单元测试的自动执行功能。该测试将成功运行,但随后该构建将立即爆炸并显示一条消息,提示它无法向构建放置文件夹报告。

发生的事情是,虽然Build服务在一个帐户下运行并拥有一组权限;实际上,某些功能是通过TFSService帐户驱动的。浪费了一堆权限后,我的测试报告了。然后我注意到构建已经开始在签入时触发;我无法确切告诉您哪个权限可以解决此问题,但希望此答案至少可以使人们走上正确的道路。

另外请注意,由于工作空间映射冲突,一些构建开始失败-这是一个单独的问题,我通过使用Team Foundation工具来删除一些过时的工作空间来解决。

希望这对其他人有帮助。


TFS应用程序服务器上的日志中是否有任何错误?是否有任何表明它试图触发但失败的信息?


从团队资源管理器中选择您的团队项目,然后右键单击Builds文件夹。选择一个新的构建定义,然后选择触发器选项卡。将单选按钮移到"构建每个签入(更多构建)"

更多信息可以在这里找到

MSDN如何:创建内部版本定义


推荐阅读