VS 2013 doesn't see my custom check-in policies

社会主义新天地 提交于 2019-12-19 04:26:32

问题


I have custom check-in policies deploying via VSIX. Now I'm trying to use them in Visual Studio 2013.

What I did: I opened my policies in VS 2013. Changed "Install Targets" in vsixmanifest to [10.0, 13.0). Then built project, installed VSIX and opened both VS.

VSIX project uses .NET Framework 4.5, policies project uses 4.0.

What I have:

  • Last version of my policies in C:\Users\...\AppData\Local\Microsoft\VisualStudio\12.0Exp\Extensions directory
  • Copies of policies for both 2012 and 2013 VS in C:\Users\...\AppData\Local\Microsoft\VisualStudio\11.0(and 12.0)\Extensions
  • Key with path to policies in registry for both VS in HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config(and 12.0_Config)\TeamFoundation\SourceControl\Checkin Policies

Now, when I want to apply them in Team Project Settings -> Source Control -> Check-in Policy -> Add, I can choose my custom policies in VS 2012, but VS 2013 just doesn't see them.

What can I do to fix it?

UPD:

So, I solved my problem by changing assembly version of Microsoft.TeamFoundation.VersionControl.Client from 11.0 to 12.0 AND .NET Framework version in policies project from 4.0 to 4.5


回答1:


As the Original Poster has posted, the version of .NET and of the referenced Client Object Model:

  • For Visual Studio 2005, you need to reference the 8.0.0.0 assemblies and your project must be an AnyCPU .NET 2.0 project.
  • For Visual Studio 2008, you need to reference the 9.0.0.0 assemblies and your project must be an AnyCPU .NET 3.0 project.
  • For Visual Studio 2010, you need to reference the 10.0.0.0 assemblies and your project must be an AnyCPU .NET 4.0 project.
  • For Visual Studio 2012, you need to reference the 11.0.0.0 assemblies and your project must be an AnyCPU .NET 4.0 project.
  • For Visual Studio 2013, you need to reference the 12.0.0.0 assemblies and your project must be an AnyCPU .NET 4.5 project.
  • For Visual Studio 2015, you need to reference the 14.0.0.0 assemblies and your project must be an AnyCPU .NET 4.6 project.

If you have multiple versions of Visual Studio installed, you need to deploy the assembly multiple times, once for each version of Visual Studio. These assemblies must have the same AssemblyName and the same AssemblyVersion and be signed with the same strong name.

The policies must each be registered in the registry under the following keys:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\{VisualStudioVersion}\TeamFoundation\SourceControl\Checkin Policies
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\{VisualStudioVersion}\TeamFoundation\SourceControl\Checkin Policies (64 bit OS only)
  • HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\{VisualStudioVersion}_Config\TeamFoundation\SourceControl\Checkin Policies (should be added automatically by running devenv /setup)

A more extensive walkthrough can be found on my blog.




回答2:


I had the same problem, a custom policy working on VS 2008/2010 don't install correctly in vs2013. Finally I opened the custom policy project in VS 2013, then I readded Microsoft.TeamFoundation.VersionControl.Client reference and compile it. Now it works and recognize as the same policy that VS2010.



来源:https://stackoverflow.com/questions/19733120/vs-2013-doesnt-see-my-custom-check-in-policies

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!