升级到 VS 2015 后签入策略不起作用

Posted

技术标签:

【中文标题】升级到 VS 2015 后签入策略不起作用【英文标题】:Checkin Policy not working after upgrading to VS 2015 【发布时间】:2016-07-04 14:15:06 【问题描述】:

我们正在运行 VS2013,以及用于源代码控制的 VSTS。我们有一个签入策略,它强制签入评论并让用户将工作项分配给签入。这已经按预期运行了一段时间。

最近,我让一位开发人员测试 VS2015 Update 1。他现在向我报告签入策略似乎无法正常工作;即使他正确地添加了评论并为签入分配了工作项,系统似乎也无法识别它们,并给出如下“策略失败”警告:

这是 VS2015 的已知错误吗?还是从 2013 升级到 2105 的某种兼容性问题?

【问题讨论】:

您是否更新了签入策略文件,使其可以在 VS2015 中使用? 嗨,Eddie,我没有对策略文件进行任何此类更新?你是怎样做的?我仍然有一些开发人员在使用 VS2013,直到我们对 VS2015 足够稳定感到高兴 - 这个小怪癖是唯一阻止我们让所有人都过来的东西。 您能否发布实际策略失败消息的屏幕截图?上面的第二个屏幕截图是 Override 消息,而不是 Policy 警告... 嗨,Hinsh 先生,我让用户重新创建问题,我看到了 2 条额外消息(请参阅下面的评论)。 变更集评论策略中的内部错误。加载变更集注释策略策略时出错(策略程序集 'Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 未注册。)。安装说明:工作项中的内部错误。加载工作项策略时出错(策略程序集 'Microsoft.TeamFoundation.VersionControl.Controls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 未注册。)。安装说明: 【参考方案1】:

在客户端 PC 上安装 2015 Power Tools。您的 Power Tools 版本必须与您的 Visual Studio 客户端匹配。

【讨论】:

嗨 M Tovbin,我已经在客户端 PC 上安装了 TFS 2015 Power Tools 我无法用 VS2015 Update 1 和 VSTS 重新创建您的问题。您能否发布与您的工作项相关联的 Team Explorer Pending Changes 的屏幕截图。 在进一步调查中,它似乎只与在 Windows 资源管理器中使用 TFS Power Tools 签入有关(在 VS 中签入工作正常),并且似乎是版本不匹配问题最初在 TFS 2013 中创建的签入策略,然后尝试仅将一个用户升级到 TFS 2015。我将首先将所有用户升级到 TFS Power Tools 2015,然后重新执行签入策略以查看是否可以解决问题. 更新:我尝试删除签入策略,关闭并重新启动 Visual Studio,然后使用 VS / Power Tools 2015 重新添加它们,但仍然收到此处指示的错误: 变更集评论政策中的内部错误。加载变更集注释策略策略时出错(策略程序集 'Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 未注册。)。安装说明:工作项中的内部错误。加载工作项策略时出错(策略程序集 'Microsoft.TeamFoundation.VersionControl.Controls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 未注册。)。安装说明:【参考方案2】:

在过去的几年里,我们还不得不更新从 2​​013 年到 2015 年的入住政策。

这里有一些你可以检查的东西。

    重新编译您的 CheckInPolicy 项目以更新 Visual Studio 程序集引用:

    Microsoft.TeamFoundation.Client; Microsoft.TeamFoundation.VersionControl.Client;

    注册您的政策:

    [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\TeamFoundation\SourceControl\Checkin 策略] "YourCheckInPolicies"="PathToYourCheckInPolicies.dll" [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\TeamFoundation\SourceControl\Checkin 策略] "YourCheckInPolicies"="PathToYourCheckInPolicies.dll"

希望对您有所帮助。 问候, 威尔萨德

【讨论】:

【参考方案3】:

我工作的公司更换了我们的 PC,当我们需要为一些旧项目安装 VS.NET 2015 时,我们遇到了同样的问题。

我只是简单地复制了以下目录的内容(从使用策略的旧 PC 复制)并将其放在新 PC 的同一目录中。

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

如果Team Explorer目录不存在,手动创建并放入内容。

OBS:当我这样做时,我已经安装了 VS.NET 2015 Power Tools。

所以,试着用这两个步骤来解决它:

    如其他答案所述,将 Power Tools 安装到 VS.NET 2015。 将必要的 DLL 文件复制到 Team Explorer 目录。我复制了它们here。

This 是我安装 Powetools 后的注册表,因此我尝试手动粘贴文件......我很幸运。它奏效了。

【讨论】:

以上是关于升级到 VS 2015 后签入策略不起作用的主要内容,如果未能解决你的问题,请参考以下文章

CSS:z-index 不起作用,当我签入智能手机浏览器时

Qt5.natvis 在 VS 2015 更新 2 中不起作用

Visual Studio 2015 RTM - 调试不起作用

MVC Web API - CORS 策略不起作用

带有缓存策略的 AFHTTPSessionManager 不起作用

win10 objectarx向导在 vs2015中不起作用的解决办法