VS 2013没有看到我的自定义签到策略

时间:2013-11-01 18:33:31

标签: visual-studio-2013 vsix checkin-policy

我有通过VSIX部署的自定义签入策略。现在我正在尝试在Visual Studio 2013中使用它们。

我做了什么: 我在VS 2013中打开了我的策略。将vsixmanifest中的“安装目标”更改为[10.0,13.0)。 然后构建项目,安装VSIX并打开VS.

VSIX项目使用.NET Framework 4.5,策略项目使用4.0。

我有什么:

  • C:\Users\...\AppData\Local\Microsoft\VisualStudio\12.0Exp\Extensions目录
  • 中我的政策的最新版本
  • C:\Users\...\AppData\Local\Microsoft\VisualStudio\11.0(and 12.0)\Extensions
  • 中2012年和2013年VS的政策副本
  • 键入HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config(and 12.0_Config)\TeamFoundation\SourceControl\Checkin Policies
  • 中VS的注册表中的策略路径

现在,当我想在Team Project Settings -> Source Control -> Check-in Policy -> Add中应用它们时,我可以在VS 2012中选择自定义策略,但VS 2013却看不到它们。

我该怎么做才能解决它?

UPD:

所以,我通过将Microsoft.TeamFoundation.VersionControl.Client的汇编版本从11.0更改为12.0来解决了我的问题 策略中的.NET Framework版本从4.0到4.5

2 个答案:

答案 0 :(得分:6)

正如原始海报发布的那样,.NET版本和引用的客户端对象模型:

  • 对于Visual Studio 2005 ,您需要引用8.0.0.0程序集,您的项目必须是AnyCPU .NET 2.0项目。
  • 对于Visual Studio 2008 ,您需要引用9.0.0.0程序集,您的项目必须是AnyCPU .NET 3.0项目。
  • 对于Visual Studio 2010 ,您需要引用10.0.0.0程序集,您的项目必须是AnyCPU .NET 4.0项目。
  • 对于Visual Studio 2012 ,您需要引用11.0.0.0程序集,您的项目必须是AnyCPU .NET 4.0项目。
  • 对于Visual Studio 2013 ,您需要引用12.0.0.0程序集,您的项目必须是AnyCPU .NET 4.5项目。
  • 对于Visual Studio 2015 ,您需要引用14.0.0.0程序集,您的项目必须是AnyCPU .NET 4.6项目。

如果安装了多个版本的Visual Studio,则需要多次部署程序集,每个版本的Visual Studio一次。这些程序集必须具有相同的AssemblyName和相同的AssemblyVersion,并使用相同的强名称进行签名。

必须使用以下密钥在注册表中注册每个策略:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\{VisualStudioVersion}\TeamFoundation\SourceControl\Checkin Policies
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\{VisualStudioVersion}\TeamFoundation\SourceControl\Checkin Policies(仅限64位操作系统)
  • HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\{VisualStudioVersion}_Config\TeamFoundation\SourceControl\Checkin Policies(应通过运行devenv /setup自动添加)

A more extensive walkthrough can be found on my blog

答案 1 :(得分:2)

我遇到了同样的问题,在VS 2008/2010上运行的自定义策略无法在vs2013中正确安装。最后我在VS 2013中打开了自定义策略项目,然后我读了Microsoft.TeamFoundation.VersionControl.Client引用并编译它。现在它的工作和认可与VS2010相同。