VSIX 自定义签入策略未加载



我正在尝试修改自定义签入策略以对抗Visual Studio 2013。

起初,我试图在 2013 年的清单中添加一个新部分:

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

虽然这允许它安装,但它不允许策略运行(如果我转到 TFS 的 policies>>Add 部分,它不存在,并且策略会引发异常,指出策略未注册)。

经过多次搜索,我认为 Policies.pkgdef 可能存在问题 - VS2013 中的扩展管理器显示它已安装,但它在挂起的更改中未显示为已安装。但是我也看不出任何问题:

[$RootKey$TeamFoundationSourceControlCheckin Policies]
"VersionOneTFSPolicy"="$PackageFolder$VersionOneTFSPolicy.dll"

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

VS2013 管理自定义签入策略的方式是否与 2010/2012 不同?从我所看到的情况来看,它应该只适用于清单更改和重新编译。

编辑

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

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

我也

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

然后,在 VSIX 实际执行安装时,将分别对每个升级进行升级。

可以帮助您的链接包括:

针对 VS 2012 和 VS 2013 的单个扩展

如何在VS2012

和VS2010中定位扩展

最新更新