Internal error loading the Changeset Comments checkin policy


[Update 11/26/12] You can get the fix by installing Update 1 (or newer) for Visual Studio 2012: http://www.microsoft.com/visualstudio/eng/downloads.

Some customers, after starting to use Visual Studio 2012 with their existing TFS deployment, have been receiving check-in policy errors having to do with the Changeset Comments policy. The errors look like:

Internal error in Changeset Comments Policy. Error loading the Changeset Comments Policy policy (The policy assembly ‘Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ is not registered.). Installation instructions: To install this policy, follow the instructions in CheckForComments.cs.

The version number may vary slightly, but for this particular problem, it’s always going to start with an 8 or a 9.

Cause

With VS 2005 through 2010, to get the Changeset Comments policy, you had to download and install the Team Foundation Power Tools. With VS 2012, the policy is included in the box and requires no additional download. This problem is a bug that was introduced as a part of moving that check-in policy into the product.

For this particular bug, only users using Visual Studio 2012 will be affected. If you have other users in your organization connecting to the same TFS server with VS 2005, 2008, or 2010, then the Changeset Comments policy should be working fine for them.

Workaround

There is also a simple workaround that you can put in place immediately, as long as you have administrative permissions on your team project. Using a Visual Studio 2010 or 2012 client, navigate to the Team Project Settings for the Team Project that has the Changeset Comments policy configured. Remove the check-in policy from the Team Project, and then immediately re-add it. The fact that you performed this step from a Visual Studio 2010 or 2012 client will re-register the policy on the server as the “10.0.0.0” version, which fixes the problem. Now any client (VS 2005 through VS 2012) will be able to load the policy successfully.

Fix

We are including a fix for this problem in the final version of Visual Studio 2012 Update 1. You can read more about Update 1 in Brian’s blog post, but the currently available preview release of that update doesn’t include this fix.

We apologize for the inconvenience!

Follow me on Twitter at twitter.com/tfsbuck

Comments (25)

  1. Hey Brian.  This does not seem to correct the error for the TFS 2012 Power Tools Windows Shell Ext.  Even after following your work around, it still appears.  I actually made a forum post about this Wed. morning.  Any thoughts on this?  Here is my post –  social.msdn.microsoft.com/…/9d2bcc04-ccec-48fc-b33f-adea6a21757a

  2. Sorry Buck, didn't mean to direct my comment/question to Brian.

  3. buckh says:

    David, this looks like a different issue. I've sent it to someone on the team to look into and follow up on the forum.

  4. Cameron Flint says:

    This cleared up the error for me. Many thanks for posting the workaround.

  5. Automation Planet says:

    Thanks Buck, that really was very helpful! I always like the exposing issue and it's solution

  6. RangerFish says:

    I tested this workaround with one of our policies, and found that it broke my VS2010 checkin policy.

  7. buckh says:

    John, is this a custom checkin policy that you wrote for 2008?

  8. RangerFish says:

    @Buck: Sorry for the delay in reply.

    Yes it's a custom checkin policy that we originally wrote for 2008. I found that performing your workaround from *VS2010* rather than VS2012 made everything work across all of our clients. This was on our test environment and I haven't tried it on our production environment yet.  Both environments are TFS2010 with a variety of VS client versions (from 2008 right up to 2012).

    We are considering a move to TFS2012 because we think the project management tools are better in 2012.

  9. buckh says:

    Ah, I think based on how the code was written in VS 2012 RTM that for a custom policy that you would need to use VS 2010 for the workaround.

    I'm glad to hear you are looking to move to TFS 2012! It's a great improvement in so many ways.

  10. RangerFish says:

    @Buck: That's what we thought. Now that we know that's what we have to do, it's not such a big deal. We just haveto make sure we do it from the right client.

    Agreed, TFS 2012 looks pretty sweet. We also think upgrading will give us an oppottunity to rethink our use of TFS in general.  However, it does mean almost 100 people need to update their configuration, so it's not something we do lightly :)

  11. DaveG says:

    Installed Update 1 and now I'm getting this error:

    —————————

    Internal error in Work Items. Error loading the Work Items policy (The policy assembly 'Microsoft.TeamFoundation.VersionControl.Controls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not registered.). Installation instructions:

    —————————

    Error loading the Work Items policy (The policy assembly 'Microsoft.TeamFoundation.VersionControl.Controls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not registered.). Installation instructions:

    —————————

    OK  

    —————————

  12. buckh says:

    We have been working with David and believe this is related to the environment he's working in (appears to be something happening when git-tfs is used to launch tf checkin rather than just running tf checkin from the command line).

  13. Noticed that I also get David's issue when using VS 2005 with TFS MSSCCI 2012 and TE 2012 to connect to TFS 2012.  Internal Changeset error version 10.0.

    Here's my software setup:

    Windows 7 SP1

    VS 2005 SP1 + Vista Compatibility Update + TFS 2010 GDR

    VS 2012 Professional Update 1

    TFS 2012 MSSCCI (32-bit)

    TFS 2012 Update 1 w/ Cumulative Update 1

    Any ideas on this?

  14. buckh says:

    Matt, we are going to try to repro this and get to the bottom of it. It will be next week, though, before we have that done.

  15. Thanks, let me know if you need any more info from me.

    Also, we were able to repro this with VB6 SP6 and VS 2003 SP1 as well using MSSCCI 2012.

    We are able to check-in without issue using TE 2010 / MSSCCI 2010 however.

  16. Need to clarify my last…

    We can check-in without issue using MSSCCI 2010 and VB6 / VS 2003.  VS 2005 does not work with MSSCCI 2010. Therefore we have a workaround for VB6 and VS 2003, but not for VS 2005.

  17. Matt,

    We've reproduced the problem you reported. We'll get this fixed for a future release of Visual Studio. I have some workaround steps to share with you.

    1. Open regedit and locate the VS 2012 master check-in policies key. My machine runs 64-bit Windows, so the location is:

    HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftVisualStudio11.0TeamFoundationSourceControlCheckin Policies

    If you have 32-bit Windows, then you'll just omit the "Wow6432Node" path part.

    2. In this key there are two REG_SZ values which have a name but no data. They are Microsoft.TeamFoundation.Build.Controls and Microsoft.TeamFoundation.VersionControl.Controls. What we need to do is to double-click each of these two REG_SZ values to edit them, and provide the full path to these DLLs. My machine runs 64-bit Windows, so the two paths are:

    C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEPrivateAssembliesMicrosoft.TeamFoundation.Build.Controls.dll

    C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEPrivateAssembliesMicrosoft.TeamFoundation.VersionControl.Controls.dll

    If you have 32-bit Windows, then there won't be an "(x86)" in your Program Files directory name.

    3. Close the registry editor and start a "Developer Command Prompt" elevated (right-click and Run as Administrator).

    4. In this Developer Command Prompt run: "devenv /setup". This will take a minute or two to run. There will not be any output from the command — when it's done you'll just end up back at the command prompt. Close the Developer Command Prompt.

    5. Restart Visual Studio 2005 and the problem ought to be resolved.

    Thanks,

    P. Kelley

    TFS Version Control

  18. Thanks for the workaround P. Kelley. At this point, the impact is low enough I'd rather not mess with that particular workaround. : )   But it's good to have it just in case.

    Is there a way to track this issue to see in what Update / hotfix it is resolved? Do you want me to submit a Connect issue for it?

  19. buckh says:

    Matt, submitting a Connect issue would give you visibility into the progress on the issue. You can reference this "thread" here on the blog post to help us keep it all straight.

    Thanks and sorry for the trouble!

  20. Not a problem.

    I've submitted a Connect issue in case anyone else wants to monitor this bug as well or vote it up.

    connect.microsoft.com/…/check-in-policy-failure-with-vs-2005-and-tfs-2012

    Thanks for looking into this!

  21. Venetia says:

    Question – What is you remove all check in policies then in that case , will there be any isssues

    Also if all policies are removed can you track it back to the developer that checked that in

    Thanks

  22. buckh says:

    Venetia, yes, you could remove all checkin policies. It's not currently tracked, so there's no history or audit trail for who made that change.

  23. TheCodeWrangler says:

    I have a variation on Matt Ring's problem that is currently broken.

    VS 2008 SP 1 + TFS 2012 GDR

    VS 2012 update 4

    TFS 2012 update 4

    P. Kelley's workaround does not fix the issue for me.

    Unfortunately, Matt's Connect bug was closed without any comment of when the issue was fixed or what hotfix (or product version) is needed to correct the issue.

  24. buckh says:

    We haven't made any changes for VS 2008, so it's possible that something affected the support for VS 2008.

    Sorry about the resolution on the Connect bug – duplicate makes it impossible for you to tell what happened to it. I've asked about it.

  25. Tom Williams says:

    Greetings and Happy New Year!   Late last year, we installed TFS 2013 as our first TFS server.   A few months after that, we had to install Visual Studio 2010 on some developer machines to support a particular application.  We setup VS 2010 to connect to our TFS 2013 server. I can see the projects on the TFS 2013 server from within VS 2010 just fine.   However, when I try to check-in changes, I get this message:

    ————–  START  ——————

    Internal error in Changeset Comments Policy. Error loading the Changeset Comments Policy policy (The policy assembly 'Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not registered.). Installation instructions:

    —————  END ———————–

    I can ignore the error and proceed with my check-in but I would like to get this issue resolved.  I tried installing Team Foundation Power Tools 2013 but that didn't seem to work.  My initial installation of Team Foundation Power Tools 2013 failed but I was able to get the check-in policy part to install fine.

    Any ideas or suggestions on getting this fixed?

    Thanks in advance for your time and assistance!

    Tom

Skip to main content