【问题标题】:VS 2013 doesn't see my custom check-in policiesVS 2013 看不到我的自定义签入策略
【发布时间】:2015-09-01 00:13:05
【问题描述】:

我有通过 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

【问题讨论】:

  • 签入策略引用了一些特定于 Visual Studio 版本的程序集,您需要更改对 VS2013 的引用并重新编译。
  • @JoachimIsaksson 谢谢,这有帮助!但现在 VS2012 没有看到策略。有没有比将两个不同版本的 ddl 放到 VSIX 更好的方法来为两个 VS 制定策略?
  • 我不知道,抱歉。

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


【解决方案1】:

正如原始海报所发布的,.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自动添加)

more extensive walkthrough can be found on my blog.

【讨论】:

  • 我正在使用 VSIX 将我的签入策略分发到 VS 2012 和 VS 2013?我让它使用两个单独的 VSIX 项目工作;一个针对 2012 年,一个针对 2013 年?由于 2012 和 2013 签入策略程序集需要具有相同的 AssemblyName,有没有办法可以使用单个 VSIX 包项目部署到两个版本的 VS?谢谢。
  • 到目前为止,我也在使用不同的 vsix,我建议为此发布一个新问题。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2020-01-20
    • 2011-09-02
    • 1970-01-01
    • 2015-04-22
    • 2013-11-07
    • 2013-10-27
    相关资源
    最近更新 更多