2

我有通过 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目录中我的策略的最新版本
  • 2012 年和 2013 年 VS 的保单副本C:\Users\...\AppData\Local\Microsoft\VisualStudio\11.0(and 12.0)\Extensions
  • 带有两个 VS 的注册表中策略路径的键HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config(and 12.0_Config)\TeamFoundation\SourceControl\Checkin Policies

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

我能做些什么来修复它?

升级版:

因此,我通过将策略项目中的程序集版本Microsoft.TeamFoundation.VersionControl.Client从 11.0 更改为 12.0 .NET Framework 版本从 4.0 更改为 4.5 来解决我的问题

4

2 回答 2

7

正如原始海报发布的那样,.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

广泛的演练可以在我的博客上找到

于 2014-01-31T12:33:59.617 回答
2

我遇到了同样的问题,适用于 VS 2008/2010 的自定义策略在 vs2013 中没有正确安装。最后我在 VS 2013 中打开了自定义策略项目,然后我阅读了 Microsoft.TeamFoundation.VersionControl.Client 参考并编译它。现在它可以工作并识别为与 VS2010 相同的策略。

于 2013-12-04T08:00:06.103 回答