VSIX自定义签入策略未加载

时间:2013-10-28 14:42:17

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

我正在尝试修改自定义Checkin策略以对抗Visual Studio 2013.

首先,我尝试在2013年的清单中添加一个新部分:

<VisualStudio Version="12.0">
    <Edition>Ultimate</Edition>
    <Edition>Premium</Edition>
    <Edition>Pro</Edition>
</VisualStudio>

虽然这允许它安装,但它不允许策略运行(如果我转到策略&gt;&gt;添加部分TFS它不存在,并且策略抛出异常声明该策略不是注册)。

经过多次狩猎后,我想可能是Policies.pkgdef存在问题 - VS2013中的扩展管理器将其显示为已安装,但未在Pending Changes中显示为已安装。但是我也看不出任何问题:

[$RootKey$\TeamFoundation\SourceControl\Checkin Policies]
"VersionOneTFSPolicy"="$PackageFolder$\VersionOneTFSPolicy.dll"

我已经打开它并在2013年编译它,并修复了任何参考问题,以便它可以正确编译,但它似乎仍然不喜欢使用它。

VS2013是否以不同于2010/2012的方式管理自定义签入策略?从我所看到的,它应该只是一个明显的改变和重新编译。

修改

因此,我通过将对Microsoft.TeamFoundation.VersionControl.Client的引用从11升级到12并将项目升级到.Net 4.5,设法在VS2013上运行自定义策略。但是,这现在使VS2012上的自定义策略无法使用(我也假设2010年,但我还没有测试过)。有没有办法在2010年到2013年从单个VSIX运行?

2 个答案:

答案 0 :(得分:1)

在没有任何其他解决方案的情况下,我恢复了经过试验和测试的更新扩展并将其构建为新包的方法。所以只需拥有2012版本和完全独立的2013版本。

答案 1 :(得分:0)

我也试图解决这个问题,从我发现的所有内容中,获得针对所有版本的扩展的唯一方法是实际创建3个单独的(2010年,2012年和2013年)扩展,并使用InstallShield安装它们包含每个包作为按顺序安装的子功能的包。

然后,当VSIX实际进行安装时,逐个升级。

可能对此有所帮助的链接包括:

Single extension targeting VS 2012 and VS 2013

How to target an extension in both VS2012 and VS2010