TFS门控签入问题

时间:2012-06-07 06:21:02

标签: tfs2010 tfsbuild gated-checkin

我想知道我是否应该在这里发帖,但后来我在TFS上看到了其他类似的帖子,他们没有解决我的问题所以我决定继续发布。

我正在尝试修复由前同事设置的TFS框。我没有使用任何其他容量的TFS,除了检查它中的文件到目前为止。为了本练习的目的,我创建了一个简单的winforms项目,只有一个表单和表单加载的hello world alert我正试图登记进入TFS。我们已启用门禁签入,我们也禁止用户绕过构建验证,因为可以在下面的红色框中看到它突出显示。

Gated check-in dialog

现在问题是所有门禁登记尝试都失败并出现错误:

Access Denied: User 'myOrgDomain\user.name' needs Override check-in 
validation by build permission for the following build definition(s). DefnName

消息提示我说它是部分成功 Gated check-in partial success

当我打开构建时,我看到了这一点 TFS Build output

当我在网上查看时,我发现解决方案是允许用户通过启用灰显的复选框来绕过条件。我不希望这种情况发生。有没有办法可以禁用旁路验证并且仍然可以使用我的门禁检查工作?

这让我完全难过,我无法弄清楚可能出现的问题。任何关于在我的日志中查找以找出问题所在的指针也可能有所帮助。日志确实说构建成功但没有警告或错误。

3 个答案:

答案 0 :(得分:1)

  

[TestProject]建设者,[TestProject]管理员& [TestProject]贡献者,我有拒绝检查,[TestProject]读者我把它留空了..

由于deny否决了任何授权,因为几乎每个用户都是读者或贡献者组的成员,您将遇到麻烦。由于用户只有在明确授予其权限时才能绕过签入验证,因此无需设置任何拒绝规则。

所以要解决你的问题:

  • 从这些组中删除拒绝检查。
  • 设置'覆盖签到验证'以允许帐户应该绕过您的封闭式签入构建。

From the docs

  

您可以为Team Foundation Server中的权限指定两个显式授权设置:拒绝和允许。还有一个隐式授权既未将权限设置为“允许”也未将权限设置为“拒绝”。此授权是隐式拒绝设置,称为“未设置”。

答案 1 :(得分:0)

你的设置中有些可疑。屏幕截图中显示的对标志的访问权限由Build-permission“Override check-in validation by build”控制。由于它没有被设置为权限,但显然被设置为选项,因此您处于死锁状态。

我会尝试临时启用此标志(右键单击“构建”上的团队资源管理器,选择“安全”并为您的用户设置权限),然后复选框应启用&我期待它被检查。我手动取消选中该复选框并让构建运行。然后我会禁用该权限。
希望现在VS会保留此选项。

如果失败,我会在MS中提交一个错误。

答案 2 :(得分:0)

TFS Build Security Dialog

我遇到了你提到的同样问题。您要设置的安全设置是针对构建本身而不是TFS框上的任何内容。对我有用的是在Visual Studio中右键单击构建,然后选择Security ...选项。然后,我确保我的构建服务帐户可以访问“在构建时覆盖签入验证”权限。这不是允许TFS用户覆盖签到。该消息实际上是关于Build Service用户是否具有覆盖签入的能力。为此,您必须是项目集合构建服务帐户组的成员。

我想知道这是否会导致TFS每次都覆盖和签入(即使构建失败),所以我故意破坏我的构建并尝试使用此权限集。它不允许我的办理登机手续继续(即适当地失败)。

就我而言,我有多个版本。仅仅允许我正在使用的解决方案允许“覆盖在构建时检入验证”是不够的。出于某种原因,我必须为我的所有其他构建做同样的事情。我无法找到有关为何情况的文件。