2013-11-01 49 views
2

我有通过VSIX部署的自定义签入策略。现在,我想在Visual Studio 2013年VS 2013没有看到我的自定义签入策略

我做什么使用它们: 我在2013年VS开了我的政策改变“安装目标”中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 in 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只是看不到它们。

我能做些什么来解决它?

UPD:

所以,我解决我的问题由11.0 Microsoft.TeamFoundation.VersionControl.Client变换组件版本12.0 .NET Framework版本在政策的项目,从4.0到4.5

+1

签入策略引用了一些Visual Studio版本特定的程序集,您需要更改对VS2013的引用并重新编译。 –

+0

@JoachimIsaksson谢谢,这有帮助!但现在VS2012没有看到政策。有没有更好的方法来制定VS的策略,而不是将两个不同版本的DDL放到VSIX上? –

+0

不是我所知道的,对不起。 –

回答

6

由于原来的海报已经发布,.NET和引用的客户端对象模型的版本:

  • 对于Visual Studio 2005 ,你需要引用8.0.0.0组件和你的项目必须是AnyCPU .NET 2.0项目。
  • 对于Visual Studio ,您需要引用9.0.0.0程序集,并且您的项目必须是AnyCPU .NET 3.0项目。
  • 对于Visual Studio ,您需要引用10.0.0.0程序集,并且您的项目必须是AnyCPU .NET 4.0项目。
  • 对于Visual Studio ,您需要引用11.0.0.0程序集,并且您的项目必须是AnyCPU .NET 4.0项目。
  • 对于Visual Studio ,您需要引用12.0.0.0程序集,并且您的项目必须是AnyCPU .NET 4.5项目。
  • 对于Visual Studio ,您需要引用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

+0

我正在使用VSIX将我的签入策略分发给VS 2012和VS 2013?我有它使用两个单独的VSIX项目工作;其中一个针对2012年,另一个针对2013年?由于2012年和2013年签到政策程序集需要具有相同的AssemblyName,有没有一种方法可以使用单个VSIX包项目部署到VS的两个版本?谢谢。 – deadlydog

+0

到目前为止,我还使用了不同的vsix,我建议为此发布一个新问题。 – jessehouwing

2

我同样的问题,在VS 2008/2010上工作的自定义策略不能在vs2013中正确安装。最后,我在VS 2013中打开了自定义策略项目,然后我读了Microsoft.TeamFoundation.VersionControl.Client引用并编译它。现在它的工作原理与VS2010一样。